Classe NowTableService - iOS
A classe NowTableService fornece funções que permitem executar operações de criação, leitura, atualização e exclusão em registros de tabelas ServiceNow existentes.
| Nome | Tipo | Descrição |
|---|---|---|
| configuração | NowServiceConfiguration | Definições de configuração fornecidas quando o serviço foi inicializado. |
NowTableService - criar<Model: SysIdentifiableModel> (_ model: Model, em tableName: String, coder: Coder, writeOptions: FieldWriteOptions, configuração: FetchConfiguration) lançamentos assíncronos
Insere o modelo Codable especificado na tabela especificada.
Para criar um novo registro por modelo, o modelo deve estar em conformidade com o protocolo SysIdentifiableModel. Cada tabela normalmente terá seu próprio modelo.
O parâmetro sys_Id do modelo é ignorado durante a criação, pois o sysId é gerado pela plataforma ServiceNow. A plataforma [ ServiceNow gerada sys_Id é retornada no modelo de resultado do manipulador completion.
| Nome | Tipo | Descrição |
|---|---|---|
| modelo | SysIdentifiableModel | Definição de modelo dos campos a serem inseridos na tabela. |
| em tableName | Cadeia de caracteres | Nome da tabela na qual os registros serão gravados, como incidente. |
| codificador | Codificador | Opcional. Codificador a ser usado para codificar ou decodificar dados enviados e recebidos da instância ServiceNow.Valores possíveis:
Padrão: .default |
| opções de gravação | Opções de Gravação de Campo | Opcional. Opções de configuração a serem aplicadas aos dados que estão sendo gravados no registro. Padrão: nulo |
| configuração | Buscar configuração | Opcional. Configuração a ser aplicada aos registros recuperados, incluindo filtros que definem os registros a serem retornados, limite de tamanho de página de paginação, quais campos recuperar e o que incluir nos campos. Padrão: nil - Todos os registros retornados. |
| Tipo | Descrição |
|---|---|
| Modelo | Retornado quando o método é bem-sucedido. Modelo codificável que foi inserido na tabela especificada, incluindo o sys_Id. Use este sys_id para fazer referência a este registro em chamadas de método futuras. |
| NowDataError | Lançado quando o método falha.
|
O exemplo de código a seguir mostra como chamar este método.
struct User: SysIdentifiableModel {
var sysId: String = ""
var name: String
}
let service: NowTableService = ...
let user = User(name: "Ash Williams")
do {
let result = try await service.create(user, in: “sys_user”)
} catch {
...
}
NowTableService - criar<Model: SysIdentifiableModel> (_ model: Model, em tableName: Cadeia de caracteres, codificador: Coder, writeOptions: FieldWriteOptions, configuração: FetchConfiguration, conclusão: @escaping (Resultado<Model, NowDataError> ))
Insere o modelo Codable especificado na tabela especificada e, em seguida, executa o manipulador completion.
SysIdentifiableModel. Cada tabela normalmente terá seu próprio modelo. Por exemplo:struct User: SysIdentifiableModel {
var sysId: String = ""
var name: String
}
let service: NowTableService = ...
let user = User(name: "Ash Williams")
service.create(Incident(fields: fields), in: tableName, writeOptions: writeOptions, configuration: fetchConfiguration) { [weak self] result in
switch result {
case .success(let newUser):
/// 'newUser' contains the platform assigned 'sys_id', use in subsequent 'update' or 'delete' calls.
case .failure(let error):
...
}
}O parâmetro sys_Id do modelo é ignorado durante a criação, pois o sysId é gerado pela plataforma ServiceNow. A plataforma [ ServiceNow gerada sys_Id é retornada no modelo de resultado do manipulador completion.
| Nome | Tipo | Descrição |
|---|---|---|
| modelo | SysIdentifiableModel | Definição de modelo dos campos a serem inseridos na tabela. |
| em tableName | Cadeia de caracteres | Nome da tabela na qual os registros serão gravados, como incidente. |
| codificador | Codificador | Opcional. Codificador a ser usado para codificar ou decodificar dados enviados e recebidos da instância ServiceNow.Valores possíveis:
Padrão: .default |
| opções de gravação | Opções de Gravação de Campo | Opcional. Opções de configuração a serem aplicadas aos dados que estão sendo gravados no registro. Padrão: nulo |
| configuração | Buscar configuração | Opcional. Configuração a ser aplicada aos registros recuperados, incluindo filtros que definem os registros a serem retornados, limite de tamanho de página de paginação, quais campos recuperar e o que incluir nos campos. Padrão: nil - Todos os registros retornados. |
| conclusão | @escaping (resultado<Model, NowDataError> ) | Manipulador de conclusão a ser executado após a criação do(s) modelo(s) decodificável(is) especificado(s). Retornar valores para o manipulador de conclusão:
|
| Tipo | Descrição |
|---|---|
| Nenhum |
struct User: SysIdentifiableModel {
var sysId: String = ""
var name: String
}
let service: NowTableService = ...
let user = User(name: "Ash Williams")
service.create(Incident(fields: fields), in: tableName, writeOptions: writeOptions, configuration: fetchConfiguration) { [weak self] result in
switch result {
case .success(let newUser):
/// 'newUser' contains the platform assigned 'sys_id' to use in subsequent update or delete calls.
case .failure(let error):
...
}
}
NowTableService - criar<Model: SysIdentifiableModel> (model: Model, em tableName: String, path: String = Constants.resultPath, coder: Coder = .default, writeOptions: FieldWriteOptions? = nil, configuration: FetchConfiguration = nil)
Insere um modelo Codable na tabela especificada.
SysIdentifiableModel. Cada tabela normalmente terá seu próprio modelo. Por exemplo:struct User: SysIdentifiableModel {
var sysId: String = ""
var name: String
}
let service: NowTableService = ...
let user = User(name: "Ash Williams")
service.create(Incident(fields: fields), in: tableName, writeOptions: writeOptions, configuration: fetchConfiguration) { [weak self] result in
switch result {
case .success(let newUser):
/// 'newUser' contains the platform assigned 'sys_id', use in subsequent 'update' or 'delete' calls.
case .failure(let error):
...
}
}fornecedor.| Nome | Tipo | Descrição |
|---|---|---|
| modelo | SysIdentifiableModel | ModeloSysIdentifiableModel a ser inserido na tabela. |
| em tableName | Cadeia de caracteres | Nome da tabela na qual os registros serão gravados, como incidente. |
| path | Cadeia de caracteres | Opcional. Caminho separado por pontos para o tipo aninhado. Por exemplo, result ou foo.bar.baz para um aninhamento mais profundo.Padrão: |
| codificador | Codificador | Opcional. Codificador a ser usado para codificar ou decodificar dados enviados e recebidos da instância ServiceNow.Valores possíveis:
Padrão: .default |
| opções de gravação | Opções de Gravação de Campo | Opcional. Opções de configuração a serem aplicadas aos dados que estão sendo gravados no registro. Padrão: nulo |
| configuração | Buscar configuração | Opcional. Configuração a ser aplicada aos registros recuperados, incluindo filtros que definem os registros a serem retornados, limite de tamanho de página de paginação, quais campos recuperar e o que incluir nos campos. Padrão: nil - Todos os registros retornados. |
| Tipo | Descrição |
|---|---|
| Qualquer publicador<Model,NowDataError> | Sucesso: modelo codificável que foi inserido na tabela especificada, incluindo sys_Id. Use este sys_id para fazer referência a este registro em chamadas de método futuras. Falha: NowDataError @escaping (resultado<Model, NowDataError> ) |
Mostra como inserir um único registro na tabela Usuário [sys_user].
struct User: SysIdentifiableModel {
var sysId: String = ""
var name: String
}
let service: NowTableService = ...
let user = User(name: "Ash Williams")
let publisher: AnyPublisher<User, NowDataError> = service.create(user, in: "sys_user")
publisher
.subscribe(on: DispatchQueue.global())
.receive(on: DispatchQueue.main)
.sink { [weak self] completion in
...
} receiveValue: { [weak self] newUser in
/// 'newUser' contains the ServiceNow platform assigned 'sys_id' to use in subsequent update and delete calls.
...
}
.store(in: &subscriptions)
NowTableService - createRecord(com campos: [FieldName: FieldValue], em tableName: cadeia de caracteres, writeOptions: FieldWriteOptions? = nil, configuração: FieldReadConfiguration? = nil) lançamentos assíncronos
Insere um registro na tabela especificada que contém os campos especificados.
let dataPublisher: AnyPublisher<Data, NowDataError> = ...
let recordsPublisher: AnyPublisher<[NowRecord], NowDataError> = myPublisher.convertToRecords()sys_ são normalmente parâmetros do sistema gerados automaticamente e não podem ser atualizados. Os campos que não são especificados e não gerados automaticamente pelo sistema são definidos com o valor nulo do tipo de dados associado.| Nome | Tipo | Descrição |
|---|---|---|
| com campos | [FieldName: FieldValue] | Pares de nome-valor dos campos a serem incluídos no registro. |
| em tableName | Cadeia de caracteres | Nome da tabela na qual os registros serão gravados, como incidente. |
| opções de gravação | Opções de Gravação de Campo | Opcional. Opções de configuração a serem aplicadas aos dados que estão sendo gravados no registro. Padrão: nulo |
| configuração | Buscar configuração | Opcional. Configuração a ser aplicada aos registros recuperados, incluindo filtros que definem os registros a serem retornados, limite de tamanho de página de paginação, quais campos recuperar e o que incluir nos campos. Padrão: nil - Todos os registros retornados. |
| Tipo | Descrição |
|---|---|
| Dados | Retornado quando o método é bem-sucedido. Objeto de dados que contém o novo registro. |
| NowDataError | Lançado quando o método falha.
|
Os exemplos de código a seguir mostram como chamar este método.
do {
let dataResult: Data = try await tableService.createRecord(with: fields, in: tableName, writeOptions: writeOptions, configuration: configuration)
let recordResult: NowRecord = dataResult.convertToRecord()
} catch {
print("Record creation failed with NowDataError: \(error)")
}
NowTableService - createRecord (com campos: [FieldName: FieldValue], em tableName: String, writeOptions: FieldWriteOptions, configuração: FieldReadConfiguration, conclusão: @escaping (Resultado<Data, NowDataError> )
Insere o registro especificado na tabela especificada e executa o manipulador completion depois que o registro é salvo.
let dataPublisher: AnyPublisher<Data, NowDataError> = ...
let recordsPublisher: AnyPublisher<[NowRecord], NowDataError> = myResult.convertToRecords()sys_ são normalmente parâmetros do sistema gerados automaticamente e não podem ser atualizados. Os campos que não são especificados e não gerados automaticamente pelo sistema são definidos com o valor nulo do tipo de dados associado.| Nome | Tipo | Descrição |
|---|---|---|
| com campos | [FieldName: FieldValue] | Pares de nome-valor dos campos a serem incluídos no registro. |
| em tableName | Cadeia de caracteres | Nome da tabela na qual os registros serão gravados, como incidente. |
| opções de gravação | Opções de Gravação de Campo | Opcional. Opções de configuração a serem aplicadas aos dados que estão sendo gravados no registro. Padrão: nulo |
| configuração | FieldReadConfiguration | Opcional. Opções de configuração que especificam quais campos retornar e o que incluir nos campos. Padrão: nulo |
| conclusão | @escaping (resultado<Data, NowDataError> ) | Manipulador de conclusão a ser executado depois que os registros forem recuperados. Valores de retorno:
|
| Tipo | Descrição |
|---|---|
| Nenhum |
O exemplo de código a seguir mostra como chamar esta função.
let fields = ["short_description" : "test description"]
let writeOptions: FieldWriteOptions = [.suppressAutoSysField, .treatInputValuesAsDisplayValues]
let readConfiguration = FieldReadConfiguration(includeFields: ["number", "short_description"])
tableService.createRecord(with: fields, in: tableName, writeOptions: writeOptions, configuration: readConfiguration) { [weak self] result in
switch result {
case .success(let dataResult):
let recordResult: NowRecord = dataResult.convertToRecord()
case .failure(let error):
print("Record creation failed with NowDataError: \(error)")
}
}
NowTableService - createRecord(com campos: [FieldName: FieldValue], em tableName: cadeia de caracteres, writeOptions: FieldWriteOptions? = nil, configuração: FieldReadConfiguration? = nil)
Insere um registro na tabela especificada que contém os campos especificados.
let dataPublisher: AnyPublisher<Data, NowDataError> = ...
let recordsPublisher: AnyPublisher<[NowRecord], NowDataError> = myPublisher.convertToRecords()sys_ são normalmente parâmetros do sistema gerados automaticamente e não podem ser atualizados. Os campos que não são especificados e não gerados automaticamente pelo sistema são definidos com o valor nulo do tipo de dados associado.| Nome | Tipo | Descrição |
|---|---|---|
| com campos | [FieldName: FieldValue] | Pares de nome-valor dos campos a serem incluídos no registro. |
| em tableName | Cadeia de caracteres | Nome da tabela na qual os registros serão gravados, como incidente. |
| opções de gravação | Opções de Gravação de Campo | Opcional. Opções de configuração a serem aplicadas aos dados que estão sendo gravados no registro. Padrão: nulo |
| configuração | Buscar configuração | Opcional. Configuração a ser aplicada aos registros recuperados, incluindo filtros que definem os registros a serem retornados, limite de tamanho de página de paginação, quais campos recuperar e o que incluir nos campos. Padrão: nil - Todos os registros retornados. |
| Tipo | Descrição |
|---|---|
| Qualquer publicador<Data, NowDataError> | Sucesso: objeto de dados que contém o registro atualizado. Falha: NowDataError
|
Este exemplo mostra como criar uma função que insere um registro na tabela especificada, com os campos especificados. A saída da chamada é um ByteArray que permite converter os dados em qualquer modelo desejado.
tableService.createRecord(with: fields, in: tableName, writeOptions: writeOptions, configuration: readConfiguration)
.subscribe(on: DispatchQueue.global())
.receive(on: DispatchQueue.main)
.convertToRecord()
.sink { completion in
if case let .failure(error) = completion {
print("Record creation failed with NowDataError: \(error)")
}
} receiveValue: { record in
print("Created NowRecord: \(record)")
}
.store(in: &subscriptions)
NowTableService - delete (_ model: Model, from tableName: String) lançamentos assíncronos
Exclui o modelo Codable especificado da tabela especificada.
| Nome | Tipo | Descrição |
|---|---|---|
| modelo | Modelo | SysIdentifiableModel a ser excluído da tabela. Ele deve conter o sys_id do registro a ser excluído. |
| de tableName | Cadeia de caracteres | Nome da tabela da qual as informações serão excluídas, como incidente. |
| Tipo | Descrição |
|---|---|
| Nenhum | Nada é retornado quando o método é bem-sucedido. |
| NowDataError | Lançado quando o método falha.
|
Os exemplos de código a seguir mostram como chamar este método.
do {
try await tableService.delete(model, from: tableName)
print("Deletion successful.")
} catch {
print("Deletion failed with NowDataError: \(error)")
}
NowTableService - delete (_ model: Model, from tableName: Cadeia de caracteres, conclusão: @escaping (Resultado<Void, NowDataError> ))
Exclui o modelo Codable especificado da tabela especificada e executa o manipulador completion apropriado.
| Nome | Tipo | Descrição |
|---|---|---|
| modelo | Modelo | SysIdentifiableModel a ser excluído da tabela. Ele deve conter o sys_id do registro a ser excluído. |
| de tableName | Cadeia de caracteres | Nome da tabela da qual as informações serão excluídas, como incidente. |
| conclusão | @escaping (resultado<Void, NowDataError> ) | Manipulador de conclusão a ser executado após a exclusão do(s) modelo(s) codificável(is) especificado(s). Valores de retorno:
|
| Tipo | Descrição |
|---|---|
| Nenhum |
O exemplo de código a seguir mostra como chamar esta função.
tableService.delete(Incident(sysId: sysId), from: tableName) { [weak self] result in
switch result {
case .success:
// Delete successfully
case .failure(let error):
// Failed to delete with NowDataError
}
}
NowTableService - delete (_ model: Model, from tableName: String)
Exclui o modelo Codable especificado da tabela especificada.
| Nome | Tipo | Descrição |
|---|---|---|
| modelo | Modelo | SysIdentifiableModel a ser excluído da tabela. Ele deve conter o sys_id do registro a ser excluído. |
| de tableName | Cadeia de caracteres | Nome da tabela da qual as informações serão excluídas, como incidente. |
| Tipo | Descrição |
|---|---|
| Qualquer publicador<Void, NowDataError> | Sucesso: nada retornado Falha: NowDataError
|
O exemplo de código a seguir mostra como chamar esta função.
tableService.delete(Incident(sysId: sysId), from: tableName)
.subscribe(on: DispatchQueue.global())
.receive(on: DispatchQueue.main)
.sink { [weak self] completion in
switch completion {
case .finished:
// Delete successfully
case .failure(let error):
// Failed to delete with NowDataError
}
} receiveValue: { _ in
}
.store(in: &subscriptions)
NowTableService - deleteRecord(sysId: SysID, from tableName: String) lançamentos assíncronos
Exclui o registro especificado da tabela especificada.
| Nome | Tipo | Descrição |
|---|---|---|
| sysId | Cadeia de caracteres | Sys_id do registro a ser excluído. |
| de tableName | Cadeia de caracteres | Nome da tabela da qual as informações serão excluídas, como incidente. |
| Tipo | Descrição |
|---|---|
| Nenhum | Nada é retornado quando o método é bem-sucedido. |
| NowDataError | Lançado quando o método falha.
|
Os exemplos de código a seguir mostram como chamar este método.
do {
try await tableService.deleteRecord(sysId: sysId, from: tableName)
print("Deletion successful.")
} catch {
print("Deletion failed with NowDataError: \(error)")
}
NowTableService - deleteRecord(sysId: SysID, from tableName: cadeia de caracteres, conclusão: @escaping (Resultado<Void, NowDataError> ))
Exclui o registro especificado da tabela especificada e executa o objeto completion depois que o registro é excluído.
| Nome | Tipo | Descrição |
|---|---|---|
| sysId | Cadeia de caracteres | Sys_id do registro a ser excluído. |
| de tableName | Cadeia de caracteres | Nome da tabela da qual as informações serão excluídas, como incidente. |
| conclusão | @escaping (resultado<Void, NowDataError> ) | Sucesso: nada é retornado. Falha: NowDataError
|
| Tipo | Descrição |
|---|---|
| Nenhum |
O exemplo de código a seguir mostra como chamar esta função.
tableService.deleteRecord(sysId: sysId, from: tableName) { [weak self] result in
switch result {
case .success:
// Delete successfully
case .failure(let error):
// Failed to delete with NowDataError
}
}
NowTableService - deleteRecord(sysId: SysID, from tableName: String)
Exclui o registro especificado da tabela especificada.
| Nome | Tipo | Descrição |
|---|---|---|
| sysId | Cadeia de caracteres | Sys_id do registro a ser excluído. |
| de tableName | Cadeia de caracteres | Nome da tabela da qual as informações serão excluídas, como incidente. |
| Tipo | Descrição |
|---|---|
| Qualquer publicador<Void, NowDataError> | Sucesso: nada retornado Falha: NowDataError
|
Este exemplo mostra como criar uma função que exclui um registro em uma tabela especificada.
tableService.deleteRecord(sysId: sysId, from: tableName)
.subscribe(on: DispatchQueue.global())
.receive(on: DispatchQueue.main)
.sink { completion in
switch completion {
case .finished:
print("Record deleted.")
case .failure(let error):
print("Deletion failed with NowDataError: \(error)")
}
} receiveValue: { _ in }
.store(in: &subscriptions)
NowServiceTable - init(configuration: NowServiceConfiguration, coreServiceProvider: NowCoreServiceProviding? = nil)
Cria um objeto NowTableService.
| Nome | Tipo | Descrição |
|---|---|---|
| configuração | NowServiceConfiguration | Parâmetros de configuração a serem usados ao criar o serviço. |
| coreServiceProvider | NowCoreServiceProviding | Opcional. Provedor de serviço a ser associado ao NowTableService. 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 tableService = NowTableService (configuration: serviceConfig, coreServiceProvider: coreService)
NowTableService - modelo<Model: Decodable> (com sysId: SysID? = nil, from tableName: String, path: String = Constants.resultPath, coder: Coder = .default, configuration: FetchConfiguration? = nil) lançamentos assíncronos
Habilita a recuperação de modelo(s) decodificável(is) de uma tabela especificada.
{
"result": [
{ "name": "Ash Williams" },
{ "name": "Lionel Cosgrove" },
{ "name": "Laurie Strode" }
]
}Para conjuntos de resultados grandes, use uma das funções do paginador, NowTableService - paginador (de tableName: cadeia de caracteres, configuração: FetchConfiguration? = nil) ou NowTableService - paginador<Model: Decodable> (de tableName: String, caminho: String = Constants.resultPath, codificador: Coder = .default, configuração: FetchConfiguration? = nil) para buscar modelos paginados.| Nome | Tipo | Descrição |
|---|---|---|
| com sysId | SysID | Opcional. Sys_id do registro a ser retornado. Forneça o sys_id se quiser recuperar um registro específico. Padrão: nulo |
| de tableName | Cadeia de caracteres | Nome da tabela da qual os registros serão recuperados, como incidente. |
| path | Cadeia de caracteres | Caminho separado por pontos para o tipo aninhado. Por exemplo, result ou foo.bar.baz para um aninhamento mais profundo.Padrão: |
| codificador | Codificador | Opcional. Codificador a ser usado para codificar ou decodificar dados enviados e recebidos da instância ServiceNow.Valores possíveis:
Padrão: .default |
| configuração | Buscar configuração | Opcional. Configuração a ser aplicada aos registros recuperados, incluindo filtros que definem os registros a serem retornados, limite de tamanho de página de paginação, quais campos recuperar e o que incluir nos campos. Padrão: nil - Todos os registros retornados. |
| Tipo | Descrição |
|---|---|
| Modelo | Retornado quando o método é bem-sucedido. Modelo(s) decodificável(is). |
| NowDataError | Lançado quando o método falha.
|
O exemplo de código a seguir mostra como chamar este método.
struct User: Codable {
var name: String
}
let service: NowTableService = ...
do {
let result = try await service.model([User].self, from: "sys_user", path: "result")
print("Fetched \(users.count) users")
} catch {
dump(error)
}
O exemplo de código a seguir mostra como buscar um único modelo decodificável por sys_id. Use um único tipo de modelo, como User.self, em vez de [User].self.
let result = try await service.model(User.self, with: "5137153cc611227c000bbd1bd8cd2005", from: "sys_user", path: "result")
NowTableService - modelo<Model: Decodable> (_ type: Model.Type, com sysId: SysID? = nil, from tableName: Cadeia de caracteres, caminho: Cadeia de caracteres = Constants.resultPath, codificador: Coder = .default, configuração: FetchConfiguration? = nil, conclusão: @escaping (Result<Model, NowDataError> ))
Recupera modelo(s) decodificável(is) de uma tabela especificada.
{
"result": [
{ "name": "Ash Williams" },
{ "name": "Lionel Cosgrove" },
{ "name": "Laurie Strode" }
]
}Use esta função para obter modelos decodificáveis em vez de saída aninhada.
| Nome | Tipo | Descrição |
|---|---|---|
| tipo | Modelo.Tipo | Tipo de valor a ser decodificado. |
| com sysId | Cadeia de caracteres | Opcional. Sys_id do registro a ser retornado. Padrão: todos os registros retornados de acordo com as configurações configuration. |
| de tableName | Cadeia de caracteres | Nome da tabela da qual os registros serão recuperados, como incidente. |
| path | Cadeia de caracteres | Opcional. Caminho separado por pontos para o tipo aninhado. Por exemplo, result ou foo.bar.baz para um aninhamento mais profundo.Padrão: |
| codificador | Codificador | Opcional. Codificador a ser usado para codificar ou decodificar dados enviados e recebidos da instância ServiceNow.Padrão: |
| configuração | Buscar configuração | Opcional. Configuração a ser aplicada aos registros recuperados, incluindo filtros que definem os registros a serem retornados, limite de tamanho de página de paginação, quais campos recuperar e o que incluir nos campos. Padrão: nil - Todos os registros retornados. |
| conclusão | @escaping (resultado<Model, NowDataError> ) | Manipulador de conclusão a ser executado após a recuperação do(s) modelo(s) decodificável(is) especificado(s). Retornar valores para o manipulador de conclusão:
|
| Tipo | Descrição |
|---|---|
| Nenhum |
Para recuperar uma coleção de modelos User decodificados.
struct User: SysIdentifiableModel {
var sysId: String = ""
var name: String
}
let service: NowTableService = ...
let user = User(name: "Ash Williams")
service.create(Incident(fields: fields), in: tableName, writeOptions: writeOptions, configuration: fetchConfiguration) { [weak self] result in
switch result {
case .success(let newUser):
/// 'newUser' contains the platform assigned 'sys_id', use in subsequent 'update' or 'delete' calls.
case .failure(let error):
...
}
}
Para buscar um único modelo decodificável por sys_id, use um único tipo de modelo, como User.self, em vez de [User].self.
service.model(User.self, with: "5137153cc611227c000bbd1bd8cd2005", from: "sys_user", path: "result") { resultin ... }
NowTableService - modelo<Model: Decodable> (com sysId: SysID? = nil, from tableName: String, path: String = Constants.resultPath, coder: Coder = .default, configuration: FetchConfiguration? = nil)
Cria um fornecedor que permite a recuperação de modelos decodificáveis de uma tabela especificada.
{
"result": [
{ "name": "Ash Williams" },
{ "name": "Lionel Cosgrove" },
{ "name": "Laurie Strode" }
]
}Para conjuntos de resultados grandes, use uma das funções do paginador, NowTableService - paginador (de tableName: cadeia de caracteres, configuração: FetchConfiguration? = nil) ou NowTableService - paginador<Model: Decodable> (de tableName: String, caminho: String = Constants.resultPath, codificador: Coder = .default, configuração: FetchConfiguration? = nil) para buscar modelos paginados.| Nome | Tipo | Descrição |
|---|---|---|
| com sysId | SysID | Opcional. Sys_id do registro a ser retornado. Forneça o sys_id se quiser recuperar um registro específico. Padrão: nulo |
| de tableName | Cadeia de caracteres | Nome da tabela da qual os registros serão recuperados, como incidente. |
| path | Cadeia de caracteres | Caminho separado por pontos para o tipo aninhado. Por exemplo, result ou foo.bar.baz para um aninhamento mais profundo.Padrão: |
| codificador | Codificador | Opcional. Codificador a ser usado para codificar ou decodificar dados enviados e recebidos da instância ServiceNow.Valores possíveis:
Padrão: .default |
| configuração | Buscar configuração | Opcional. Configuração a ser aplicada aos registros recuperados, incluindo filtros que definem os registros a serem retornados, limite de tamanho de página de paginação, quais campos recuperar e o que incluir nos campos. Padrão: nil - Todos os registros retornados. |
| Tipo | Descrição |
|---|---|
| Qualquer publicador<Model, NowDataError> | Sucesso: fornecedor que retorna modelo(s) decodificável(is). Falha: NowDataError
|
Para obter um fornecedor que forneça modelos de Usuário decodificados por tipo, como [Usuários].self, busque os modelos especificando um caminho separado por pontos.
struct User: Codable {
varname: String
}
let service: NowTableService = ...
let publisher: AnyPublisher<[User], NowDataError> = service.model(from: "sys_user", path: "user.photos.gps_location")
Para buscar um único modelo decodificável por sys_id, use um único tipo de modelo User.self, em vez de [User].self.
let publisher: AnyPublisher<User, NowDataError> = service.model(with: "5137153cc611227c000bbd1bd8cd2005", from: "sys_user", path: "result")
NowTableService - paginador (de tableName: cadeia de caracteres, configuração: FetchConfiguration? = nil)
Cria um paginador que permite iterar por meio de páginas de registros.
let dataPublisher: AnyPublisher<Data, NowDataError> = ...
let recordsPublisher: AnyPublisher<[NowRecord], NowDataError> = myPublisher.convertToRecords()| Nome | Tipo | Descrição |
|---|---|---|
| tableName | Cadeia de caracteres | Nome da tabela da qual os registros serão recuperados, como incidente. |
| configuração | Buscar configuração | Opcional. Configuração a ser aplicada aos registros recuperados, incluindo filtros que definem os registros a serem retornados, limite de tamanho de página de paginação, quais campos recuperar e o que incluir nos campos. Padrão: nil - Todos os registros retornados. |
| Tipo | Descrição |
|---|---|
| Paginador<Data> | Sucesso: objeto paginador que contém os registros especificados. Falha: NowDataError
|
private var tableService: NowTableService?
// Paginator creation uses type inference to determine the response type.
private var paginator: Paginator<[CustomerServiceCase]>?
func initializeTableService(for instanceUrl: URL) {
makeTableService(instanceUrl: instanceUrl) { [weak self] result in
guard let self = self else { return }
switch result {
case .success(let tableService):
self.tableService = tableService
// Create a paginator that iterates over pages of customer support cases. The paginator's response type is
// inferred from the paginator's type definition (e.g. `Paginator<[CustomerServiceCase]>`).
self.paginator = tableService.paginator(from: Self.tableName, configuration: self.fetchConfiguration)
// Subscribe to the paginator's publisher so you are able to receive paged results.
self.subscribeToPaginatorPublisher()
// Ready to start fetching data, inform the view controller.
self.onReady(self)
case .failure(let error):
debugPrint("Creating table service failed with error: \(error.localizedDescription)")
self.tableService = nil
self.paginator = nil
}
}
}
NowTableService - paginador<Model: Decodable> (de tableName: String, caminho: String = Constants.resultPath, codificador: Coder = .default, configuração: FetchConfiguration? = nil)
Cria um paginador que permite a iteração de páginas de modelos decodificados que manipulam o aninhamento.
{
"result": [
{ "name": "Ash Williams" },
{ "name": "Lionel Cosgrove" },
{ "name": "Laurie Strode" }
]
}struct User: Codable {
varname: String
}
let service: NowTableService = ...
let paginator: Paginator<[User]> = service.paginator(from: "sys_user", path: "result")paginator.publisher
.subscribe(on: DispatchQueue.global())
.receive(on: DispatchQueue.main)
.sink { … }
.store(in: &subscriptions)| Nome | Tipo | Descrição |
|---|---|---|
| de tableName | Cadeia de caracteres | Nome da tabela da qual os registros serão recuperados, como incidente. |
| path | Cadeia de caracteres | Caminho separado por pontos para o tipo aninhado. Por exemplo, result ou result.user.photos para um aninhamento mais profundo. Especificar um caminho personalizado permite buscar ou iterar em dados aninhados.Padrão: |
| codificador | Codificador | Opcional. Codificador a ser usado para codificar ou decodificar dados enviados e recebidos da instância ServiceNow.Valores possíveis:
Padrão: .default |
| configuração | Buscar configuração | Opcional. Configuração a ser aplicada aos registros recuperados, incluindo filtros que definem os registros a serem retornados, limite de tamanho de página de paginação, quais campos recuperar e o que incluir nos campos. Padrão: nil - Todos os registros retornados. |
| Tipo | Descrição |
|---|---|
| Paginador<Data> | Sucesso: objeto Paginator que contém modelo(s) decodificável(is) paginado(s).Falha: NowDataError
|
Este exemplo mostra como obter um objeto Paginator que fornece modelos de usuário decodificados. Você pode buscar o objeto Paginator desejado sugerindo ao compilador que retorne uma coleção de modelos de usuário ([Usuário]) e informando ao objeto Paginator que os usuários estão aninhados abaixo do caminho do resultado.
struct User: Codable {
var name: String
}
let service: NowTableService = ...
let paginator: Paginator<[User]> = service.paginator(from: "sys_user", path: "result")
NowTableService - record(with sysId: SysID, from tableName: String, configuration: FieldReadConfiguration? = nil) lançamentos assíncronos
Recupera um registro especificado da tabela especificada em uma instância ServiceNow.
let dataPublisher: AnyPublisher<Data, NowDataError> = ...
let recordsPublisher: AnyPublisher<[NowRecord], NowDataError> = myPublisher.convertToRecords()| Nome | Tipo | Descrição |
|---|---|---|
| sysId | Cadeia de caracteres | Sys_id do registro a ser retornado da instância ServiceNow. |
| de tableName | Cadeia de caracteres | Nome da tabela da qual os registros serão recuperados, como incidente. |
| configuração | Buscar configuração | Opcional. Configuração a ser aplicada aos registros recuperados, incluindo filtros que definem os registros a serem retornados, limite de tamanho de página de paginação, quais campos recuperar e o que incluir nos campos. Padrão: nil - Todos os registros retornados. |
| Tipo | Descrição |
|---|---|
| Dados | Retornado quando o método é bem-sucedido. Objeto de dados que contém o registro especificado. |
| NowDataError | Lançado quando o método falha.
|
Os exemplos de código a seguir mostram como chamar este método.
func fetchTableRecord(sysId: String, tableName: String, includeFields: [FieldName] = [FieldName](), readOptions: FieldReadConfiguration.Options = []) async throws -> NowRecord {
let readConfig = FieldReadConfiguration(includeFields: includeFields, options: readOptions)
do {
let dataResult: Data = try await tableService.record(with: sysId, from: tableName, configuration: configuration)
let recordResult: NowRecord = dataResult.convertToRecord()
return recordResult
} catch {
print("Fetch failed with NowDataError: \(error)")
throw error
}
}
NowTableService - record(com sysId: SysID, from tableName: String, configuração: FieldReadConfiguration, conclusão: @escaping (Resultado<Data, NowDataError> )
Recupera o registro especificado da tabela especificada e executa um manipulador de conclusão depois que o registro é recuperado.
let dataPublisher: AnyPublisher<Data, NowDataError> = ...
let recordsPublisher: AnyPublisher<[NowRecord], NowDataError> = myResult.convertToRecords() Para conjuntos de resultados grandes, use a função NowTableService - paginador (de tableName: cadeia de caracteres, configuração: FetchConfiguration? = nil) para buscar resultados paginados.| Nome | Tipo | Descrição |
|---|---|---|
| sysId | Cadeia de caracteres | Sys_id do registro a ser retornado da instância ServiceNow. |
| de tableName | Cadeia de caracteres | Nome da tabela da qual os registros serão recuperados, como incidente. |
| configuração | Buscar configuração | Opcional. Configuração a ser aplicada aos registros recuperados, incluindo filtros que definem os registros a serem retornados, limite de tamanho de página de paginação, quais campos recuperar e o que incluir nos campos. Padrão: nil - Todos os registros retornados. |
| conclusão | @escaping (resultado<Data, NowDataError> ) | Manipulador de conclusão a ser executado depois que os registros forem recuperados. Valores de retorno:
|
| Tipo | Descrição |
|---|---|
| Nenhum |
O exemplo de código a seguir mostra como chamar este método.
func fetchTableRecords( tableName: String, filterQuery: String, includeFields: [FieldName] = [FieldName](), readOptions: FieldReadConfiguration.Options = [], limit: Int?) {
let readConfig = FieldReadConfiguration(includeFields: includeFields, options: readOptions)
let config = FetchConfiguration(Filter(query: filterQuery), limit, readConfig)
tableService.records (from: tableName, configuration: fetchConfiguration) { [weak self] result in
switch result {
case .success(let dataResult):
let recordResult: [NowRecord] = dataResult.convertToRecords()
// Return recordResult
case .failure(let error):
// Failed to fetch record with NowDataError
}
}
}
NowTableService - record (com sysId: SysID, de tableName: cadeia de caracteres, configuração: FieldReadConfiguration? = nil)
Cria um publicador para recuperar um registro especificado da tabela especificada em uma instância ServiceNow.
let dataPublisher: AnyPublisher<Data, NowDataError> = ...
let recordsPublisher: AnyPublisher<[NowRecord], NowDataError> = myPublisher.convertToRecords()| Nome | Tipo | Descrição |
|---|---|---|
| sysId | Cadeia de caracteres | Sys_id do registro a ser retornado da instância ServiceNow. |
| de tableName | Cadeia de caracteres | Nome da tabela da qual os registros serão recuperados, como incidente. |
| configuração | Buscar configuração | Opcional. Configuração a ser aplicada aos registros recuperados, incluindo filtros que definem os registros a serem retornados, limite de tamanho de página de paginação, quais campos recuperar e o que incluir nos campos. Padrão: nil - Todos os registros retornados. |
| Tipo | Descrição |
|---|---|
| Qualquer publicador<Data, NowDataError> | Sucesso: objeto de dados que contém os registros especificados. Falha: NowDataError
|
Este exemplo mostra como criar uma função que recupera o registro especificado da tabela especificada, com os campos especificados. A saída da chamada é um ByteArray que permite converter os dados em qualquer modelo desejado.
tableService.record(with: sysId, from: tableName, configuration: fetchConfiguration)
.subscribe(on: DispatchQueue.global())
.receive(on: DispatchQueue.main)
.convertToRecord()
.sink { completion in
if case let .failure(error) = completion {
print("Record retrieval failed with NowDataError: \(error)")
}
} receiveValue: { record in
print("Successfully retrieved record: \(record)")
}
.store(in: &subscriptions)
NowTableService - registros (de tableName: cadeia de caracteres, configuração: FetchConfiguration? = nil) lançamentos assíncronos
Recupera registros da tabela especificada.
let dataPublisher: AnyPublisher<Data, NowDataError> = ...
let recordsPublisher: AnyPublisher<[NowRecord], NowDataError> = myPublisher.convertToRecords() Para conjuntos de resultados grandes, use a função NowTableService - paginador (de tableName: cadeia de caracteres, configuração: FetchConfiguration? = nil) para buscar resultados paginados.| Nome | Tipo | Descrição |
|---|---|---|
| de tableName | Cadeia de caracteres | Nome da tabela da qual os registros serão recuperados, como incidente. |
| configuração | Buscar configuração | Opcional. Configuração a ser aplicada aos registros recuperados, incluindo filtros que definem os registros a serem retornados, limite de tamanho de página de paginação, quais campos recuperar e o que incluir nos campos. Padrão: nil - Todos os registros retornados. |
| Tipo | Descrição |
|---|---|
| Dados | Retornado quando o método é bem-sucedido. Objeto de dados que contém os registros especificados. |
| NowDataError | Lançado quando o método falha.
|
O exemplo de código a seguir mostra como chamar este método.
func fetchTableRecords( tableName: String, filterQuery: String,
includeFields: [FieldName] = [FieldName](), readOptions:
FieldReadConfiguration.Options = [], limit: Int?) {
let readConfig = FieldReadConfiguration(includeFields: includeFields, options: readOptions)
let config = FetchConfiguration(Filter(query: filterQuery), limit, readConfig)
do {
let dataResult: Data = try await tableService.records(from: tableName, configuration: config)
let recordResult: [NowRecord] = dataResult.convertToRecords()
// return recordResult
} catch {
print("Fetch failed with NowDataError: \(error)")
throw error
}
}
NowTableService - registros (de tableName: Cadeia de caracteres, configuração: FetchConfiguration? = nil, conclusão: @escaping (Resultado<Data, NowDataError> ))
Recupera registros de uma tabela especificada e executa o manipulador completion depois que os registros são recuperados.
let dataPublisher: AnyPublisher<Data, NowDataError> = ...
let recordsPublisher: AnyPublisher<[NowRecord], NowDataError> = myResult.convertToRecords() Para conjuntos de resultados grandes, use a função NowTableService - paginador (de tableName: cadeia de caracteres, configuração: FetchConfiguration? = nil) para buscar resultados paginados.| Nome | Tipo | Descrição |
|---|---|---|
| em tableName | Cadeia de caracteres | Nome da tabela na qual os registros serão gravados, como incidente. |
| configuração | Buscar configuração | Opcional. Configuração a ser aplicada aos registros recuperados, incluindo filtros que definem os registros a serem retornados, limite de tamanho de página de paginação, quais campos recuperar e o que incluir nos campos. Padrão: nil - Todos os registros retornados. |
| conclusão | @escaping (resultado<Data, NowDataError> ) | Manipulador de conclusão a ser executado depois que os registros forem recuperados. Valores de retorno:
|
| Tipo | Descrição |
|---|---|
| Nenhum |
O exemplo de código a seguir mostra como chamar este método.
func fetchTableRecords( tableName: String, filterQuery: String, includeFields: [FieldName] = [FieldName](), readOptions: FieldReadConfiguration.Options = [], limit: Int?) {
let readConfig = FieldReadConfiguration(includeFields: includeFields, options: readOptions)
let config = FetchConfiguration(Filter(query: filterQuery), limit, readConfig)
tableService.records (from: tableName, configuration: fetchConfiguration) { [weak self] result in
switch result {
case .success(let dataResult):
let recordResult: [NowRecord] = dataResult.convertToRecords()
// return recordResult
case .failure(let error):
// Failed to fetch record with NowDataError
}
}
}
NowTableService - registros (de tableName: cadeia de caracteres, configuração: FetchConfiguration? = nil)
Cria um fornecedor que permite recuperar registros da tabela especificada.
let dataPublisher: AnyPublisher<Data, NowDataError> = ...
let recordsPublisher: AnyPublisher<[NowRecord], NowDataError> = myPublisher.convertToRecords() Para conjuntos de resultados grandes, use a função NowTableService - paginador (de tableName: cadeia de caracteres, configuração: FetchConfiguration? = nil) para buscar resultados paginados.| Nome | Tipo | Descrição |
|---|---|---|
| de tableName | Cadeia de caracteres | Nome da tabela da qual os registros serão recuperados, como incidente. |
| configuração | Buscar configuração | Opcional. Configuração a ser aplicada aos registros recuperados, incluindo filtros que definem os registros a serem retornados, limite de tamanho de página de paginação, quais campos recuperar e o que incluir nos campos. Padrão: nil - Todos os registros retornados. |
| Tipo | Descrição |
|---|---|
| Qualquer publicador<Data, NowDataError> | Sucesso: objeto de dados que contém os registros especificados. Falha: NowDataError
|
Este exemplo mostra como criar uma função que busca vários registros de uma tabela especificada. Ele cria um objeto que programará a solicitação a ser executada em algum momento no futuro e retornará uma resposta ByteArray.
tableService.records(from: tableName, configuration: fetchConfiguration)
.subscribe(on: DispatchQueue.global())
.receive(on: DispatchQueue.main)
.convertToRecords()
.sink { completion in
if case let .failure(error) = completion {
print("Record retrieval failed with NowDataError: \(error)")
}
} receiveValue: { records in
print("Successfully retrieved records: \(records)")
}
.store(in: &subscriptions)
NowTableService - atualizar<Model: SysIdentifiableModel> (_ model: Model, in tableName: String, coder: Coder = .default, writeOptions: FieldWriteOptions? = nil, configuration: FetchConfiguration? = nil) lançamentos assíncronos
Atualiza o modelo Codable especificado na tabela especificada.
| Nome | Tipo | Descrição |
|---|---|---|
| modelo | Modelo | ModeloSysIdentifiableModel a ser atualizado na tabela. |
| em tableName | Cadeia de caracteres | Nome da tabela na qual os registros serão gravados, como incidente. |
| codificador | Codificador | Opcional. Codificador a ser usado para codificar ou decodificar dados enviados e recebidos da instância ServiceNow.Valores possíveis:
Padrão: .default |
| opções de gravação | Opções de Gravação de Campo | Opcional. Opções de configuração a serem aplicadas aos dados que estão sendo gravados no registro. Padrão: nulo |
| configuração | Buscar configuração | Opcional. Configuração a ser aplicada aos registros recuperados, incluindo filtros que definem os registros a serem retornados, limite de tamanho de página de paginação, quais campos recuperar e o que incluir nos campos. Padrão: nil - Todos os registros retornados. |
| Tipo | Descrição |
|---|---|
| Modelo | Retornado quando o método é bem-sucedido. Modelo decodificável que foi atualizado na tabela especificada. |
| NowDataError | Lançado quando o método falha.
|
Os exemplos de código a seguir mostram como chamar este método.
struct User: SysIdentifiableModel {
var sysId: String = ""
var name: String}
func updateUser(user: User) async throws -> User {
do {
let result = try await tableService.update(user, in: “sys_user”)
return result
} catch {
print("Update failed with NowDataError: \(error)")
throw error
}
}
NowTableService - atualizar<Model: SysIdentifiableModel> (_ model: Model, em tableName: Cadeia de caracteres, codificador: Coder = .default, writeOptions: FieldWriteOptions? = nil, configuração: FetchConfiguration? = nil, conclusão: @escaping (Result<Model, NowDataError> ))
Atualiza o modelo Codable especificado na tabela especificada e executa o manipulador completion.
| Nome | Tipo | Descrição |
|---|---|---|
| modelo | Modelo | ModeloSysIdentifiableModel a ser atualizado na tabela. |
| em tableName | Cadeia de caracteres | Nome da tabela na qual os registros serão gravados, como incidente. |
| codificador | Codificador | Opcional. Codificador a ser usado para codificar ou decodificar dados enviados e recebidos da instância ServiceNow.Valores possíveis:
Padrão: .default |
| opções de gravação | Opções de Gravação de Campo | Opcional. Opções de configuração a serem aplicadas aos dados que estão sendo gravados no registro. Padrão: nulo |
| configuração | Buscar configuração | Opcional. Configuração a ser aplicada aos registros recuperados, incluindo filtros que definem os registros a serem retornados, limite de tamanho de página de paginação, quais campos recuperar e o que incluir nos campos. Padrão: nil - Todos os registros retornados. |
| conclusão | @escaping (resultado<Model, NowDataError> ) | Manipulador de conclusão a ser executado após a atualização do(s) modelo(s) codável(is) especificado(s). Valores de retorno:
|
| Tipo | Descrição |
|---|---|
| Nenhum |
O exemplo de código a seguir mostra como chamar este método.
struct User: SysIdentifiableModel {
var sysId: String = ""
var name: String
}
let user = User(sysId: "12345", name: "abel")
let coder: Coder = .default
tableService.update(user, in: "sys_user") { [weak self] result in
switch result {
case .success(let model):
do {
let data = try coder.jsonEncoder.encode(model)
self?.publish(data: data)
} catch {
self?.publish(result: .failure(error))
}
case .failure(let error):
// Failed to update with NowDataError
self?.publish(result: .failure(error))
}
}
NowTableService - atualizar<Model: SysIdentifiableModel> (_ model: Model, em tableName: String, coder: Coder = .default, writeOptions: FieldWriteOptions? = nil, configuration: FetchConfiguration? = nil)
Atualiza o modelo codificável especificado na tabela especificada.
| Nome | Tipo | Descrição |
|---|---|---|
| modelo | Modelo | ModeloSysIdentifiableModel a ser atualizado na tabela. |
| em tableName | Cadeia de caracteres | Nome da tabela na qual os registros serão gravados, como incidente. |
| codificador | Codificador | Opcional. Codificador a ser usado para codificar ou decodificar dados enviados e recebidos da instância ServiceNow.Valores possíveis:
Padrão: .default |
| opções de gravação | Opções de Gravação de Campo | Opcional. Opções de configuração a serem aplicadas aos dados que estão sendo gravados no registro. Padrão: nulo |
| configuração | Buscar configuração | Opcional. Configuração a ser aplicada aos registros recuperados, incluindo filtros que definem os registros a serem retornados, limite de tamanho de página de paginação, quais campos recuperar e o que incluir nos campos. Padrão: nil - Todos os registros retornados. |
| Tipo | Descrição |
|---|---|
| Qualquer publicador<Model, NowDataError> | Sucesso: modelos decodificáveis que foram atualizados na tabela especificada. Falha: NowDataError
|
O exemplo de código a seguir mostra como chamar este método.
struct User: SysIdentifiableModel {
var sysId: String = ""
var name: String
}
let user = User(sysId: "12345", name: "abel")
let coder: Coder = .default
tableService.update(user, in: "sys_user")
.subscribe(on: DispatchQueue.global())
.receive(on: DispatchQueue.main)
.sink { [weak self] completion in
if case let .failure(error) = completion {
// Failed to update with NowDataError
self?.publish(result: .failure(error))
}
} receiveValue: { [weak self] updatedModel in
do {
let data = try coder.jsonEncoder.encode(updatedModel)
self?.publish(data: data)
} catch {
// Failed to update with NowDataError
self?.publish(result: .failure(error))
}
}
.store(in: &subscriptions)
NowTableService - updateRecord(sysId: SysID, in tableName: String, withfields: [FieldName: FieldValue], writeOptions: FieldWriteOptions? = nil, configuration: FieldReadConfiguration? = nil) lançamentos assíncronos
Atualiza o registro especificado com os campos especificados.
let dataPublisher: AnyPublisher<Data, NowDataError> = ...
let recordsPublisher: AnyPublisher<[NowRecord], NowDataError> = myPublisher.convertToRecords()sys_ são normalmente parâmetros do sistema gerados automaticamente e não podem ser atualizados. Os campos que não são especificados e não gerados automaticamente pelo sistema são definidos com o valor nulo do tipo de dados associado.| Nome | Tipo | Descrição |
|---|---|---|
| sysId | Cadeia de caracteres | Sys_id do registro a ser retornado da instância ServiceNow. |
| com campos | [FieldName: FieldValue] | Pares de nome-valor dos campos a serem incluídos no registro. |
| em tableName | Cadeia de caracteres | Nome da tabela na qual os registros serão gravados, como incidente. |
| opções de gravação | Opções de Gravação de Campo | Opcional. Opções de configuração a serem aplicadas aos dados que estão sendo gravados no registro. Padrão: nulo |
| configuração | Buscar configuração | Opcional. Configuração a ser aplicada aos registros recuperados, incluindo filtros que definem os registros a serem retornados, limite de tamanho de página de paginação, quais campos recuperar e o que incluir nos campos. Padrão: nil - Todos os registros retornados. |
| Tipo | Descrição |
|---|---|
| Dados | Retornado quando o método é bem-sucedido. Objeto de dados que contém o registro atualizado. |
| NowDataError | Lançado quando o método falha.
|
Os exemplos de código a seguir mostram como chamar este método.
do {
let dataResult: Data = try await tableService.updateRecord(with: fields, in: tableName, writeOptions: writeOptions, configuration: configuration)
let recordResult: NowRecord = dataResult.convertToRecord()
} catch {
print("Record update failed with NowDataError: \(error)")
}
NowTableService - updateRecord(sysId: SysID, em tableName: Cadeia de caracteres, com campos: [FieldName: FieldValue], writeOptions: FieldWriteOptions? = nil, configuração: FieldReadConfiguration? = nil, conclusão: @escaping (Result<Data, NowDataError> )
Atualiza o registro especificado com os campos especificados e executa o manipulador completion quando o registro é salvo.
let dataPublisher: AnyPublisher<Data, NowDataError> = ...
let recordsPublisher: AnyPublisher<[NowRecord], NowDataError> = myResult.convertToRecords()sys_ são normalmente parâmetros do sistema gerados automaticamente e não podem ser atualizados. Os campos que não são especificados e não gerados automaticamente pelo sistema são definidos com o valor nulo do tipo de dados associado.| Nome | Tipo | Descrição |
|---|---|---|
| sysId | Cadeia de caracteres | Sys_id do registro a ser retornado da instância ServiceNow. |
| com campos | [FieldName: FieldValue] | Pares de nome-valor dos campos a serem incluídos no registro. |
| em tableName | Cadeia de caracteres | Nome da tabela na qual os registros serão gravados, como incidente. |
| opções de gravação | Opções de Gravação de Campo | Opcional. Opções de configuração a serem aplicadas aos dados que estão sendo gravados no registro. Padrão: nulo |
| configuração | Buscar configuração | Opcional. Configuração a ser aplicada aos registros recuperados, incluindo filtros que definem os registros a serem retornados, limite de tamanho de página de paginação, quais campos recuperar e o que incluir nos campos. Padrão: nil - Todos os registros retornados. |
| conclusão | @escaping (resultado<Data, NowDataError> ) | Manipulador de conclusão a ser executado depois que os registros forem recuperados. Valores de retorno:
|
| Tipo | Descrição |
|---|---|
| Nenhum |
O exemplo de código a seguir mostra como chamar este método.
tableService.updateRecord(sysId: sysId, in: tableName, with: fields, writeOptions: writeOptions, configuration: readConfiguration) { [weak self] result in
switch result {
case .success(let data):
self?.publish(data: data)
case .failure(let error):
// Failed to update with NowDataError
}
}
NowTableService - updateRecord(sysId: SysID, in tableName: String, withfields: [FieldName: FieldValue], writeOptions: FieldWriteOptions? = nil, configuration: FieldReadConfiguration? = nil)
Atualiza o registro especificado com os campos especificados.
let dataPublisher: AnyPublisher<Data, NowDataError> = ...
let recordsPublisher: AnyPublisher<[NowRecord], NowDataError> = myPublisher.convertToRecords()sys_ são normalmente parâmetros do sistema gerados automaticamente e não podem ser atualizados. Os campos que não são especificados e não gerados automaticamente pelo sistema são definidos com o valor nulo do tipo de dados associado.| Nome | Tipo | Descrição |
|---|---|---|
| sysId | Cadeia de caracteres | Sys_id do registro a ser retornado da instância ServiceNow. |
| com campos | [FieldName: FieldValue] | Pares de nome-valor dos campos a serem incluídos no registro. |
| em tableName | Cadeia de caracteres | Nome da tabela na qual os registros serão gravados, como incidente. |
| opções de gravação | Opções de Gravação de Campo | Opcional. Opções de configuração a serem aplicadas aos dados que estão sendo gravados no registro. Padrão: nulo |
| configuração | Buscar configuração | Opcional. Configuração a ser aplicada aos registros recuperados, incluindo filtros que definem os registros a serem retornados, limite de tamanho de página de paginação, quais campos recuperar e o que incluir nos campos. Padrão: nil - Todos os registros retornados. |
| Tipo | Descrição |
|---|---|
| Qualquer publicador<Data, NowDataError> | Sucesso: objeto de dados que contém o registro atualizado. Falha: NowDataError
|
Este exemplo mostra como criar uma função que atualiza um registro na tabela especificada, com os campos especificados. A saída da chamada é um ByteArray que permite converter os dados em qualquer modelo desejado.
tableService.updateRecord(sysId: sysId, in: tableName, with: fields, writeOptions: writeOptions, configuration: readConfiguration)
.subscribe(on: DispatchQueue.global())
.receive(on: DispatchQueue.main)
.convertToRecord()
.sink { completion in
if case let .failure(error) = completion {
print("Update failed with NowDataError: \(error)")
}
} receiveValue: { record in
print("Record updated: \(record)")
}
.store(in: &subscriptions)