Classe NowTableService : iOS
La classe NowTableService fournit des fonctions qui vous permettent d’effectuer des opérations de création, de lecture, de mise à jour et de suppression sur des enregistrements de tables existantes ServiceNow .
| Nom | Type | Description |
|---|---|---|
| configuration | Configuration Now ServiceConfiguration | Paramètres de configuration fournis lors de l’initialisation du service. |
NowTableService : create<Model : SysIdentifiableModel>(_ model : Model, in tableName : String, coder : Coder, writeOptions : FieldWriteOptions, configuration : FetchConfiguration) Levées asynchrones
Insère le modèle codable spécifié dans la table spécifiée.
Pour créer un nouvel enregistrement par modèle, le modèle doit être conforme au protocole SysIdentifiableModel . Chaque table a généralement son propre modèle.
Le paramètre du modèle est ignoré lors de sys_Id la création, car il sysId est généré par la ServiceNow plateforme. La ServiceNow plateforme générée sys_Id est renvoyée dans le modèle de résultat du completion gestionnaire.
| Nom | Type | Description |
|---|---|---|
| modèle | SysIdentifiableModel (en anglais seulement) | Définition du modèle des champs à insérer dans la table. |
| dans tableName | Chaîne | Nom de la table dans laquelle écrire les enregistrements , comme incident. |
| codeur | Codeur | Facultatif. Codeur à utiliser pour coder ou décoder les données envoyées et reçues de l’instance ServiceNow .Valeurs possibles :
Par défaut : .default |
| options d’écriture | FieldWriteOptions (en anglais seulement) | Facultatif. Options de configuration à appliquer aux données en cours d’écriture dans l’enregistrement. Par défaut : nul |
| configuration | FetchConfiguration (Récupérer la configuration) | Facultatif. Configuration à appliquer aux enregistrements récupérés, y compris les filtres qui définissent les enregistrements à renvoyer, la limite de taille de page de pagination, les champs à récupérer et les éléments à inclure dans les champs. Par défaut : néant : tous les enregistrements renvoyés. |
| Type | Description |
|---|---|
| Modèle | Renvoyé lorsque la méthode réussit. Modèle codable qui a été inséré dans la table spécifiée, y compris le sys_Id. Utilisez cette sys_id pour référencer cet enregistrement dans les futurs appels de méthode. |
| NowDataError (en anglais seulement) | Levée lorsque la méthode échoue.
|
L’exemple de code suivant montre comment appeler cette méthode.
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 : create<Model : SysIdentifiableModel>(_ model : Model, in tableName : String, coder : Coder, writeOptions : FieldWriteOptions, configuration : FetchConfiguration, completion : @escaping (Result<Model, NowDataError>))
Insère le modèle codable spécifié dans la table spécifiée, puis exécute le completion gestionnaire.
SysIdentifiableModel . Chaque table a généralement son propre modèle. Par exemple :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):
...
}
}Le paramètre du modèle est ignoré lors de sys_Id la création, car il sysId est généré par la ServiceNow plateforme. La ServiceNow plateforme générée sys_Id est renvoyée dans le modèle de résultat du completion gestionnaire.
| Nom | Type | Description |
|---|---|---|
| modèle | SysIdentifiableModel (en anglais seulement) | Définition du modèle des champs à insérer dans la table. |
| dans tableName | Chaîne | Nom de la table dans laquelle écrire les enregistrements , comme incident. |
| codeur | Codeur | Facultatif. Codeur à utiliser pour coder ou décoder les données envoyées et reçues de l’instance ServiceNow .Valeurs possibles :
Par défaut : .default |
| options d’écriture | FieldWriteOptions (en anglais seulement) | Facultatif. Options de configuration à appliquer aux données en cours d’écriture dans l’enregistrement. Par défaut : nul |
| configuration | FetchConfiguration (Récupérer la configuration) | Facultatif. Configuration à appliquer aux enregistrements récupérés, y compris les filtres qui définissent les enregistrements à renvoyer, la limite de taille de page de pagination, les champs à récupérer et les éléments à inclure dans les champs. Par défaut : néant : tous les enregistrements renvoyés. |
| achèvement | @escaping (Result<Model, NowDataError>) | Gestionnaire de complétion à exécuter après avoir créé le ou les modèles décodables spécifiés. Valeurs de retour pour le gestionnaire de complétion :
|
| Type | Description |
|---|---|
| Aucun |
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 – create<Model : SysIdentifiableModel>(model : Model, in tableName : String, path : String = Constants.resultPath, coder : Coder = .default, writeOptions : FieldWriteOptions ? = nil, configuration : FetchConfiguration = nil)
Insère un modèle codable dans la table spécifiée.
SysIdentifiableModel . Chaque table a généralement son propre modèle. Par exemple :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):
...
}
}receiveValue de sys_Id l’éditeur.| Nom | Type | Description |
|---|---|---|
| modèle | SysIdentifiableModel (en anglais seulement) | Modèle SysIdentifiableModel à insérer dans la table. |
| dans tableName | Chaîne | Nom de la table dans laquelle écrire les enregistrements , comme incident. |
| chemin d'accès | Chaîne | Facultatif. Chemin d’accès séparé par des points pour le type imbriqué. Par exemple, result ou foo.bar.baz pour une imbrication plus profonde.Par défaut : |
| codeur | Codeur | Facultatif. Codeur à utiliser pour coder ou décoder les données envoyées et reçues de l’instance ServiceNow .Valeurs possibles :
Par défaut : .default |
| options d’écriture | FieldWriteOptions (en anglais seulement) | Facultatif. Options de configuration à appliquer aux données en cours d’écriture dans l’enregistrement. Par défaut : nul |
| configuration | FetchConfiguration (Récupérer la configuration) | Facultatif. Configuration à appliquer aux enregistrements récupérés, y compris les filtres qui définissent les enregistrements à renvoyer, la limite de taille de page de pagination, les champs à récupérer et les éléments à inclure dans les champs. Par défaut : néant : tous les enregistrements renvoyés. |
| Type | Description |
|---|---|
| AnyPublisher<Model,NowDataError> | Réussite : modèle codable qui a été inséré dans la table spécifiée, y compris sys_Id. Utilisez cette sys_id pour référencer cet enregistrement dans les futurs appels de méthode. Échec : NowDataError @escaping (Result<Model, NowDataError>) |
Montre comment insérer un seul enregistrement dans la table Utilisateur [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(avec les champs : [FieldName : FieldValue], dans tableName : String, writeOptions : FieldWriteOptions ? = nil, configuration : FieldReadConfiguration ? = nil) Levées asynchrones
Insère un enregistrement dans la table spécifiée qui contient les champs spécifiés.
let dataPublisher: AnyPublisher<Data, NowDataError> = ...
let recordsPublisher: AnyPublisher<[NowRecord], NowDataError> = myPublisher.convertToRecords()est sys_ sont généralement des paramètres système générés automatiquement et qui ne peuvent pas être mis à jour. Les champs qui ne sont pas spécifiés et qui ne sont pas générés automatiquement par le système sont définis sur la valeur null du type de données associé.| Nom | Type | Description |
|---|---|---|
| avec champs | [FieldName : FieldValue] | Paires nom-valeur des champs à inclure dans l’enregistrement. |
| dans tableName | Chaîne | Nom de la table dans laquelle écrire les enregistrements , comme incident. |
| options d’écriture | FieldWriteOptions (en anglais seulement) | Facultatif. Options de configuration à appliquer aux données en cours d’écriture dans l’enregistrement. Par défaut : nul |
| configuration | FetchConfiguration (Récupérer la configuration) | Facultatif. Configuration à appliquer aux enregistrements récupérés, y compris les filtres qui définissent les enregistrements à renvoyer, la limite de taille de page de pagination, les champs à récupérer et les éléments à inclure dans les champs. Par défaut : néant : tous les enregistrements renvoyés. |
| Type | Description |
|---|---|
| Données | Renvoyé lorsque la méthode réussit. Objet de données contenant le nouvel enregistrement. |
| NowDataError (en anglais seulement) | Levée lorsque la méthode échoue.
|
Les exemples de code suivants montrent comment appeler cette méthode.
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(avec champs : [FieldName : FieldValue], dans tableName : String, writeOptions : FieldWriteOptions, configuration : FieldReadConfiguration, complétion : @escaping (Result<Data, NowDataError>)
Insère l’enregistrement spécifié dans la table spécifiée, puis exécute le completion gestionnaire une fois l’enregistrement enregistré.
let dataPublisher: AnyPublisher<Data, NowDataError> = ...
let recordsPublisher: AnyPublisher<[NowRecord], NowDataError> = myResult.convertToRecords()est sys_ sont généralement des paramètres système générés automatiquement et qui ne peuvent pas être mis à jour. Les champs qui ne sont pas spécifiés et qui ne sont pas générés automatiquement par le système sont définis sur la valeur null du type de données associé.| Nom | Type | Description |
|---|---|---|
| avec champs | [FieldName : FieldValue] | Paires nom-valeur des champs à inclure dans l’enregistrement. |
| dans tableName | Chaîne | Nom de la table dans laquelle écrire les enregistrements , comme incident. |
| options d’écriture | FieldWriteOptions (en anglais seulement) | Facultatif. Options de configuration à appliquer aux données en cours d’écriture dans l’enregistrement. Par défaut : nul |
| configuration | Configuration de lecture de champ | Facultatif. Options de configuration qui spécifient les champs à renvoyer et les éléments à inclure dans les champs. Par défaut : nul |
| achèvement | @escaping (Result<Data, NowDataError>) | Gestionnaire de complétion à exécuter une fois les enregistrements récupérés. Valeurs de retour :
|
| Type | Description |
|---|---|
| Aucun |
L’exemple de code suivant montre comment appeler cette fonction.
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(avec les champs : [FieldName : FieldValue], dans tableName : String, writeOptions : FieldWriteOptions ? = nil, configuration : FieldReadConfiguration ? = nil)
Insère un enregistrement dans la table spécifiée qui contient les champs spécifiés.
let dataPublisher: AnyPublisher<Data, NowDataError> = ...
let recordsPublisher: AnyPublisher<[NowRecord], NowDataError> = myPublisher.convertToRecords()est sys_ sont généralement des paramètres système générés automatiquement et qui ne peuvent pas être mis à jour. Les champs qui ne sont pas spécifiés et qui ne sont pas générés automatiquement par le système sont définis sur la valeur null du type de données associé.| Nom | Type | Description |
|---|---|---|
| avec champs | [FieldName : FieldValue] | Paires nom-valeur des champs à inclure dans l’enregistrement. |
| dans tableName | Chaîne | Nom de la table dans laquelle écrire les enregistrements , comme incident. |
| options d’écriture | FieldWriteOptions (en anglais seulement) | Facultatif. Options de configuration à appliquer aux données en cours d’écriture dans l’enregistrement. Par défaut : nul |
| configuration | FetchConfiguration (Récupérer la configuration) | Facultatif. Configuration à appliquer aux enregistrements récupérés, y compris les filtres qui définissent les enregistrements à renvoyer, la limite de taille de page de pagination, les champs à récupérer et les éléments à inclure dans les champs. Par défaut : néant : tous les enregistrements renvoyés. |
| Type | Description |
|---|---|
| AnyPublisher<Data, NowDataError> | Réussite : objet de données contenant l’enregistrement mis à jour. Échec : NowDataError
|
Cet exemple montre comment créer une fonction qui insère un enregistrement dans la table spécifiée, avec les champs spécifiés. La sortie de l’appel est un ByteArray qui vous permet de convertir les données dans n’importe quel modèle que vous voulez.
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) lèvements asynchrones
Supprime le modèle codable spécifié de la table spécifiée.
| Nom | Type | Description |
|---|---|---|
| modèle | Modèle | SysIdentifiableModel à supprimer de la table. Il doit contenir le sys_id de l’enregistrement à supprimer. |
| à partir de tableName | Chaîne | Nom de la table à partir de laquelle supprimer les informations, comme incident. |
| Type | Description |
|---|---|
| Aucun | Rien n’est renvoyé lorsque la méthode réussit. |
| NowDataError (en anglais seulement) | Levée lorsque la méthode échoue.
|
Les exemples de code suivants montrent comment appeler cette méthode.
do {
try await tableService.delete(model, from: tableName)
print("Deletion successful.")
} catch {
print("Deletion failed with NowDataError: \(error)")
}
NowTableService : delete(_ model : Model, from tableName : String, completion : @escaping (Result<Void, NowDataError>))
Supprime le modèle codable spécifié de la table spécifiée, puis exécute le gestionnaire approprié completion .
| Nom | Type | Description |
|---|---|---|
| modèle | Modèle | SysIdentifiableModel à supprimer de la table. Il doit contenir le sys_id de l’enregistrement à supprimer. |
| à partir de tableName | Chaîne | Nom de la table à partir de laquelle supprimer les informations, comme incident. |
| achèvement | @escaping (résultat<vide, NowDataError>) | Gestionnaire de complétion à exécuter après la suppression du ou des modèles codables spécifiés. Valeurs de retour :
|
| Type | Description |
|---|---|
| Aucun |
L’exemple de code suivant montre comment appeler cette fonction.
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)
Supprime le modèle codable spécifié de la table spécifiée.
| Nom | Type | Description |
|---|---|---|
| modèle | Modèle | SysIdentifiableModel à supprimer de la table. Il doit contenir le sys_id de l’enregistrement à supprimer. |
| à partir de tableName | Chaîne | Nom de la table à partir de laquelle supprimer les informations, comme incident. |
| Type | Description |
|---|---|
| AnyPublisher<Void, NowDataError> | Réussite : aucun retour Échec : NowDataError
|
L’exemple de code suivant montre comment appeler cette fonction.
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) lèvements asynchrones
Supprime l’enregistrement spécifié de la table spécifiée.
| Nom | Type | Description |
|---|---|---|
| sysId | Chaîne | Sys_id de l’enregistrement à supprimer. |
| à partir de tableName | Chaîne | Nom de la table à partir de laquelle supprimer les informations, comme incident. |
| Type | Description |
|---|---|
| Aucun | Rien n’est renvoyé lorsque la méthode réussit. |
| NowDataError (en anglais seulement) | Levée lorsque la méthode échoue.
|
Les exemples de code suivants montrent comment appeler cette méthode.
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 : String, completion : @escaping (Result<Void, NowDataError>))
Supprime l’enregistrement spécifié de la table spécifiée, puis exécute l’objet completion une fois l’enregistrement supprimé.
| Nom | Type | Description |
|---|---|---|
| sysId | Chaîne | Sys_id de l’enregistrement à supprimer. |
| à partir de tableName | Chaîne | Nom de la table à partir de laquelle supprimer les informations, comme incident. |
| achèvement | @escaping (résultat<vide, NowDataError>) | Réussite : rien n’est retourné. Échec : NowDataError
|
| Type | Description |
|---|---|
| Aucun |
L’exemple de code suivant montre comment appeler cette fonction.
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)
Supprime l’enregistrement spécifié de la table spécifiée.
| Nom | Type | Description |
|---|---|---|
| sysId | Chaîne | Sys_id de l’enregistrement à supprimer. |
| à partir de tableName | Chaîne | Nom de la table à partir de laquelle supprimer les informations, comme incident. |
| Type | Description |
|---|---|
| AnyPublisher<Void, NowDataError> | Réussite : aucun retour Échec : NowDataError
|
Cet exemple montre comment créer une fonction qui supprime un enregistrement dans une table spécifiée.
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)
Crée un objet NowTableService.
| Nom | Type | Description |
|---|---|---|
| configuration | Configuration Now ServiceConfiguration | Paramètres de configuration à utiliser lors de la création du service. |
| coreServiceProvider (en anglais seulement) | NowCoreServiceProviding | Facultatif. Fournisseur de service à associer à NowTableService. Par défaut : nul |
L’exemple de code suivant montre comment appeler cette fonction.
guard let coreService = NowSDK.core() else {
// Error with NowServiceError.sdkNotConfigured
return
}
guard
let instanceUrl = URL(string: "http://sample.service-now.com") ,
let serviceConfig = NowSDK.makeServiceConfiguration(for: instanceUrl) else {
// Could not create service –
// NowServiceError.serviceConfigurationInvalid
return
}
let tableService = NowTableService (configuration: serviceConfig, coreServiceProvider: coreService)
NowTableService – model<Model : Decodable>(with sysId : SysID ? = nil, from tableName : String, path : String = Constants.resultPath, coder : Coder = .default, configuration : FetchConfiguration ? = nil) Levées asynchrones
Active la récupération d’un ou de plusieurs modèles décodables à partir d’une table spécifiée.
{
"result": [
{ "name": "Ash Williams" },
{ "name": "Lionel Cosgrove" },
{ "name": "Laurie Strode" }
]
}Pour les jeux de résultats volumineux, NowTableService : paginator(from tableName : String, configuration : FetchConfiguration ? = nil) utilisez l’une des fonctions de pagination ou NowTableService – paginator<Model : Decodable>(from tableName : String, path : String = Constants.resultPath, coder : Coder = .default, configuration : FetchConfiguration ? = nil) pour extraire des modèles paginés.| Nom | Type | Description |
|---|---|---|
| avec sysId | SysID | Facultatif. Sys_id de l’enregistrement à renvoyer. Fournissez le sys_id si vous souhaitez récupérer un enregistrement spécifique. Par défaut : nul |
| à partir de tableName | Chaîne | Nom de la table à partir de laquelle récupérer les enregistrements , comme incident. |
| chemin d'accès | Chaîne | Chemin d’accès séparé par des points pour le type imbriqué. Par exemple, result ou foo.bar.baz pour une imbrication plus profonde.Par défaut : |
| codeur | Codeur | Facultatif. Codeur à utiliser pour coder ou décoder les données envoyées et reçues de l’instance ServiceNow .Valeurs possibles :
Par défaut : .default |
| configuration | FetchConfiguration (Récupérer la configuration) | Facultatif. Configuration à appliquer aux enregistrements récupérés, y compris les filtres qui définissent les enregistrements à renvoyer, la limite de taille de page de pagination, les champs à récupérer et les éléments à inclure dans les champs. Par défaut : néant : tous les enregistrements renvoyés. |
| Type | Description |
|---|---|
| Modèle | Renvoyé lorsque la méthode réussit. Modèle(s) décodable(s). |
| NowDataError (en anglais seulement) | Levée lorsque la méthode échoue.
|
L’exemple de code suivant montre comment appeler cette méthode.
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)
}
L’exemple de code suivant montre comment extraire un seul modèle décodable par sys_id. Utilisez un seul type de modèle, tel que Utilisateur.self, plutôt que [Utilisateur].soi.
let result = try await service.model(User.self, with: "5137153cc611227c000bbd1bd8cd2005", from: "sys_user", path: "result")
NowTableService : model<Model : Decodable>(_ type : Model.Type, with sysId : SysID ? = nil, from tableName : String, path : String = Constants.resultPath, coder : Coder = .default, configuration : FetchConfiguration ? = nil, complétion : @escaping (Result<Model, NowDataError>))
Récupère le(s) modèle(s) décodable(s) à partir d’une table spécifiée.
{
"result": [
{ "name": "Ash Williams" },
{ "name": "Lionel Cosgrove" },
{ "name": "Laurie Strode" }
]
}Utilisez cette fonction pour obtenir des modèles décodables au lieu d’une sortie imbriquée.
| Nom | Type | Description |
|---|---|---|
| type | Type.Modèle | Type de valeur à décoder. |
| avec sysId | Chaîne | Facultatif. Sys_id de l’enregistrement à renvoyer. Par défaut : tous les enregistrements renvoyés selon les configuration paramètres. |
| à partir de tableName | Chaîne | Nom de la table à partir de laquelle récupérer les enregistrements , comme incident. |
| chemin d'accès | Chaîne | Facultatif. Chemin d’accès séparé par des points pour le type imbriqué. Par exemple, result ou foo.bar.baz pour une imbrication plus profonde.Par défaut : |
| codeur | Codeur | Facultatif. Codeur à utiliser pour coder ou décoder les données envoyées et reçues de l’instance ServiceNow .Par défaut : |
| configuration | FetchConfiguration (Récupérer la configuration) | Facultatif. Configuration à appliquer aux enregistrements récupérés, y compris les filtres qui définissent les enregistrements à renvoyer, la limite de taille de page de pagination, les champs à récupérer et les éléments à inclure dans les champs. Par défaut : néant : tous les enregistrements renvoyés. |
| achèvement | @escaping (Result<Model, NowDataError>) | Gestionnaire de complétion à exécuter après avoir récupéré le ou les modèles décodables spécifiés. Valeurs de retour pour le gestionnaire de complétion :
|
| Type | Description |
|---|---|
| Aucun |
Pour récupérer une collection de modèles décodés User .
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):
...
}
}
Pour extraire un seul modèle décodable par sys_id, utilisez un seul type de modèle, tel que User.self, plutôt que [User].self.
service.model(User.self, with: "5137153cc611227c000bbd1bd8cd2005", from: "sys_user", path: "result") { resultin ... }
NowTableService : model<Model : Decodable>(with sysId : SysID ? = nil, from tableName : String, path : String = Constants.resultPath, coder : Coder = .default, configuration : FetchConfiguration ? = nil)
Crée un éditeur qui permet la récupération du ou des modèles décodables à partir d’une table spécifiée.
{
"result": [
{ "name": "Ash Williams" },
{ "name": "Lionel Cosgrove" },
{ "name": "Laurie Strode" }
]
}Pour les jeux de résultats volumineux, NowTableService : paginator(from tableName : String, configuration : FetchConfiguration ? = nil) utilisez l’une des fonctions de pagination ou NowTableService – paginator<Model : Decodable>(from tableName : String, path : String = Constants.resultPath, coder : Coder = .default, configuration : FetchConfiguration ? = nil) pour extraire des modèles paginés.| Nom | Type | Description |
|---|---|---|
| avec sysId | SysID | Facultatif. Sys_id de l’enregistrement à renvoyer. Fournissez le sys_id si vous souhaitez récupérer un enregistrement spécifique. Par défaut : nul |
| à partir de tableName | Chaîne | Nom de la table à partir de laquelle récupérer les enregistrements , comme incident. |
| chemin d'accès | Chaîne | Chemin d’accès séparé par des points pour le type imbriqué. Par exemple, result ou foo.bar.baz pour une imbrication plus profonde.Par défaut : |
| codeur | Codeur | Facultatif. Codeur à utiliser pour coder ou décoder les données envoyées et reçues de l’instance ServiceNow .Valeurs possibles :
Par défaut : .default |
| configuration | FetchConfiguration (Récupérer la configuration) | Facultatif. Configuration à appliquer aux enregistrements récupérés, y compris les filtres qui définissent les enregistrements à renvoyer, la limite de taille de page de pagination, les champs à récupérer et les éléments à inclure dans les champs. Par défaut : néant : tous les enregistrements renvoyés. |
| Type | Description |
|---|---|
| AnyPublisher<Model, NowDataError> | Réussite : l’éditeur renvoie un ou plusieurs modèles décodables. Échec : NowDataError
|
Pour obtenir un éditeur qui fournit des modèles d’utilisateur décodés par type, tels que [Users].self, extrayez les modèles en spécifiant un chemin d’accès séparé par des points.
struct User: Codable {
varname: String
}
let service: NowTableService = ...
let publisher: AnyPublisher<[User], NowDataError> = service.model(from: "sys_user", path: "user.photos.gps_location")
Pour extraire un seul modèle décodable par sys_id, utilisez un seul type de modèle User.self plutôt que [User].self.
let publisher: AnyPublisher<User, NowDataError> = service.model(with: "5137153cc611227c000bbd1bd8cd2005", from: "sys_user", path: "result")
NowTableService : paginator(from tableName : String, configuration : FetchConfiguration ? = nil)
Crée un paginateur qui permet l’itération à travers les pages d’enregistrements.
let dataPublisher: AnyPublisher<Data, NowDataError> = ...
let recordsPublisher: AnyPublisher<[NowRecord], NowDataError> = myPublisher.convertToRecords()| Nom | Type | Description |
|---|---|---|
| tableName | Chaîne | Nom de la table à partir de laquelle récupérer les enregistrements , comme incident. |
| configuration | FetchConfiguration (Récupérer la configuration) | Facultatif. Configuration à appliquer aux enregistrements récupérés, y compris les filtres qui définissent les enregistrements à renvoyer, la limite de taille de page de pagination, les champs à récupérer et les éléments à inclure dans les champs. Par défaut : néant : tous les enregistrements renvoyés. |
| Type | Description |
|---|---|
| Paginateur<Données> | Réussite : objet de paginateur contenant les enregistrements spécifiés. Échec : 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 – paginator<Model : Decodable>(from tableName : String, path : String = Constants.resultPath, coder : Coder = .default, configuration : FetchConfiguration ? = nil)
Crée un paginateur qui active l’itération de pages de modèles décodés qui gèrent l’imbrication.
{
"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)| Nom | Type | Description |
|---|---|---|
| à partir de tableName | Chaîne | Nom de la table à partir de laquelle récupérer les enregistrements , comme incident. |
| chemin d’accès | Chaîne | Chemin d’accès séparé par des points pour le type imbriqué. Par exemple, résultat ou result.user.photos pour une imbrication plus profonde. La spécification d’un chemin d’accès personnalisé permet d’extraire ou d’itérer sur les données imbriquées.Par défaut : |
| codeur | Codeur | Facultatif. Codeur à utiliser pour coder ou décoder les données envoyées et reçues de l’instance ServiceNow .Valeurs possibles :
Par défaut : .default |
| configuration | FetchConfiguration (Récupérer la configuration) | Facultatif. Configuration à appliquer aux enregistrements récupérés, y compris les filtres qui définissent les enregistrements à renvoyer, la limite de taille de page de pagination, les champs à récupérer et les éléments à inclure dans les champs. Par défaut : néant : tous les enregistrements renvoyés. |
| Type | Description |
|---|---|
| Paginateur<Données> | Réussite : objet de paginateur contenant un ou plusieurs modèles paginés décodables .Échec : NowDataError
|
Cet exemple montre comment obtenir un objet Paginator qui fournit des modèles User décodés. Vous pouvez extraire l’objet Paginator souhaité en indiquant au compilateur de renvoyer une collection de modèles User ([User]) et en informant l’objet Paginator que les utilisateurs sont imbriqués sous le chemin d’accès du résultat.
struct User: Codable {
var name: String
}
let service: NowTableService = ...
let paginator: Paginator<[User]> = service.paginator(from: "sys_user", path: "result")
NowTableService : enregistrement (avec sysId : SysID, from tableName : String, configuration : FieldReadConfiguration ? = nil) Levées asynchrones
Récupère un enregistrement spécifié de la table spécifiée sur une ServiceNow instance.
let dataPublisher: AnyPublisher<Data, NowDataError> = ...
let recordsPublisher: AnyPublisher<[NowRecord], NowDataError> = myPublisher.convertToRecords()| Nom | Type | Description |
|---|---|---|
| sysId | Chaîne | Sys_id de l’enregistrement à renvoyer à partir de l’instance ServiceNow . |
| à partir de tableName | Chaîne | Nom de la table à partir de laquelle récupérer les enregistrements , comme incident. |
| configuration | FetchConfiguration (Récupérer la configuration) | Facultatif. Configuration à appliquer aux enregistrements récupérés, y compris les filtres qui définissent les enregistrements à renvoyer, la limite de taille de page de pagination, les champs à récupérer et les éléments à inclure dans les champs. Par défaut : néant : tous les enregistrements renvoyés. |
| Type | Description |
|---|---|
| Données | Renvoyé lorsque la méthode réussit. Objet de données contenant l’enregistrement spécifié. |
| NowDataError (en anglais seulement) | Levée lorsque la méthode échoue.
|
Les exemples de code suivants montrent comment appeler cette méthode.
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 : enregistrement (avec sysId : SysID, from tableName : String, configuration : FieldReadConfiguration, complétion : @escaping (Result<Data, NowDataError>)
Récupère l’enregistrement spécifié à partir de la table spécifiée, puis exécute un gestionnaire de complétion une fois l’enregistrement récupéré.
let dataPublisher: AnyPublisher<Data, NowDataError> = ...
let recordsPublisher: AnyPublisher<[NowRecord], NowDataError> = myResult.convertToRecords() Pour les jeux de résultats volumineux, utilisez la fonction pour extraire les NowTableService : paginator(from tableName : String, configuration : FetchConfiguration ? = nil) résultats paginés.| Nom | Type | Description |
|---|---|---|
| sysId | Chaîne | Sys_id de l’enregistrement à renvoyer à partir de l’instance ServiceNow . |
| à partir de tableName | Chaîne | Nom de la table à partir de laquelle récupérer les enregistrements , comme incident. |
| configuration | FetchConfiguration (Récupérer la configuration) | Facultatif. Configuration à appliquer aux enregistrements récupérés, y compris les filtres qui définissent les enregistrements à renvoyer, la limite de taille de page de pagination, les champs à récupérer et les éléments à inclure dans les champs. Par défaut : néant : tous les enregistrements renvoyés. |
| achèvement | @escaping (Result<Data, NowDataError>) | Gestionnaire de complétion à exécuter une fois les enregistrements récupérés. Valeurs de retour :
|
| Type | Description |
|---|---|
| Aucun |
L’exemple de code suivant montre comment appeler cette méthode.
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(with sysId : SysID, from tableName : String, configuration : FieldReadConfiguration ? = nil)
Crée un éditeur pour récupérer un enregistrement spécifié à partir de la table spécifiée sur une ServiceNow instance.
let dataPublisher: AnyPublisher<Data, NowDataError> = ...
let recordsPublisher: AnyPublisher<[NowRecord], NowDataError> = myPublisher.convertToRecords()| Nom | Type | Description |
|---|---|---|
| sysId | Chaîne | Sys_id de l’enregistrement à renvoyer à partir de l’instance ServiceNow . |
| à partir de tableName | Chaîne | Nom de la table à partir de laquelle récupérer les enregistrements , comme incident. |
| configuration | FetchConfiguration (Récupérer la configuration) | Facultatif. Configuration à appliquer aux enregistrements récupérés, y compris les filtres qui définissent les enregistrements à renvoyer, la limite de taille de page de pagination, les champs à récupérer et les éléments à inclure dans les champs. Par défaut : néant : tous les enregistrements renvoyés. |
| Type | Description |
|---|---|
| AnyPublisher<Data, NowDataError> | Réussite : objet de données contenant les enregistrements spécifiés. Échec : NowDataError
|
Cet exemple montre comment créer une fonction qui récupère l’enregistrement spécifié à partir de la table spécifiée, avec les champs spécifiés. La sortie de l’appel est un ByteArray qui vous permet de convertir les données dans n’importe quel modèle que vous voulez.
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 : records(from tableName : String, configuration : FetchConfiguration ? = nil) lèvements asynchrones
Récupère les enregistrements de la table spécifiée.
let dataPublisher: AnyPublisher<Data, NowDataError> = ...
let recordsPublisher: AnyPublisher<[NowRecord], NowDataError> = myPublisher.convertToRecords() Pour les jeux de résultats volumineux, utilisez la fonction pour extraire les NowTableService : paginator(from tableName : String, configuration : FetchConfiguration ? = nil) résultats paginés.| Nom | Type | Description |
|---|---|---|
| à partir de tableName | Chaîne | Nom de la table à partir de laquelle récupérer les enregistrements , comme incident. |
| configuration | FetchConfiguration (Récupérer la configuration) | Facultatif. Configuration à appliquer aux enregistrements récupérés, y compris les filtres qui définissent les enregistrements à renvoyer, la limite de taille de page de pagination, les champs à récupérer et les éléments à inclure dans les champs. Par défaut : néant : tous les enregistrements renvoyés. |
| Type | Description |
|---|---|
| Données | Renvoyé lorsque la méthode réussit. Objet de données contenant les enregistrements spécifiés. |
| NowDataError (en anglais seulement) | Levée lorsque la méthode échoue.
|
L’exemple de code suivant montre comment appeler cette méthode.
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 : records(from tableName : String, configuration : FetchConfiguration ? = nil, completion : @escaping (Result<Data, NowDataError>))
Récupère les enregistrements d’une table spécifiée, puis exécute le completion gestionnaire une fois les enregistrements récupérés.
let dataPublisher: AnyPublisher<Data, NowDataError> = ...
let recordsPublisher: AnyPublisher<[NowRecord], NowDataError> = myResult.convertToRecords() Pour les jeux de résultats volumineux, utilisez la fonction pour extraire les NowTableService : paginator(from tableName : String, configuration : FetchConfiguration ? = nil) résultats paginés.| Nom | Type | Description |
|---|---|---|
| dans tableName | Chaîne | Nom de la table dans laquelle écrire les enregistrements , comme incident. |
| configuration | FetchConfiguration (Récupérer la configuration) | Facultatif. Configuration à appliquer aux enregistrements récupérés, y compris les filtres qui définissent les enregistrements à renvoyer, la limite de taille de page de pagination, les champs à récupérer et les éléments à inclure dans les champs. Par défaut : néant : tous les enregistrements renvoyés. |
| achèvement | @escaping (Result<Data, NowDataError>) | Gestionnaire de complétion à exécuter une fois les enregistrements récupérés. Valeurs de retour :
|
| Type | Description |
|---|---|
| Aucun |
L’exemple de code suivant montre comment appeler cette méthode.
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 : records(from tableName : String, configuration : FetchConfiguration ? = nil)
Crée un éditeur qui vous permet de récupérer les enregistrements de la table spécifiée.
let dataPublisher: AnyPublisher<Data, NowDataError> = ...
let recordsPublisher: AnyPublisher<[NowRecord], NowDataError> = myPublisher.convertToRecords() Pour les jeux de résultats volumineux, utilisez la fonction pour extraire les NowTableService : paginator(from tableName : String, configuration : FetchConfiguration ? = nil) résultats paginés.| Nom | Type | Description |
|---|---|---|
| à partir de tableName | Chaîne | Nom de la table à partir de laquelle récupérer les enregistrements , comme incident. |
| configuration | FetchConfiguration (Récupérer la configuration) | Facultatif. Configuration à appliquer aux enregistrements récupérés, y compris les filtres qui définissent les enregistrements à renvoyer, la limite de taille de page de pagination, les champs à récupérer et les éléments à inclure dans les champs. Par défaut : néant : tous les enregistrements renvoyés. |
| Type | Description |
|---|---|
| AnyPublisher<Data, NowDataError> | Réussite : objet de données contenant les enregistrements spécifiés. Échec : NowDataError
|
Cet exemple montre comment créer une fonction qui récupère plusieurs enregistrements à partir d’une table spécifiée. Cela crée un objet qui planifiera l’exécution de la demande à un moment donné dans le futur et renverra une réponse 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 - update<Model : SysIdentifiableModel>(_ model : Model, in tableName : String, coder : Coder = .default, writeOptions : FieldWriteOptions ? = nil, configuration : FetchConfiguration ? = nil) Levées asynchrones
Met à jour le modèle codable spécifié dans la table spécifiée.
| Nom | Type | Description |
|---|---|---|
| modèle | Modèle | Modèle SysIdentifiableModel à mettre à jour dans la table. |
| dans tableName | Chaîne | Nom de la table dans laquelle écrire les enregistrements , comme incident. |
| codeur | Codeur | Facultatif. Codeur à utiliser pour coder ou décoder les données envoyées et reçues de l’instance ServiceNow .Valeurs possibles :
Par défaut : .default |
| options d’écriture | FieldWriteOptions (en anglais seulement) | Facultatif. Options de configuration à appliquer aux données en cours d’écriture dans l’enregistrement. Par défaut : nul |
| configuration | FetchConfiguration (Récupérer la configuration) | Facultatif. Configuration à appliquer aux enregistrements récupérés, y compris les filtres qui définissent les enregistrements à renvoyer, la limite de taille de page de pagination, les champs à récupérer et les éléments à inclure dans les champs. Par défaut : néant : tous les enregistrements renvoyés. |
| Type | Description |
|---|---|
| Modèle | Renvoyé lorsque la méthode réussit. Modèle décodable qui a été mis à jour dans la table spécifiée. |
| NowDataError (en anglais seulement) | Levée lorsque la méthode échoue.
|
Les exemples de code suivants montrent comment appeler cette méthode.
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 : update<Model : SysIdentifiableModel>(_ model : Model, in tableName : String, coder : Coder = .default, writeOptions : FieldWriteOptions ? = nil, configuration : FetchConfiguration ? = nil, completion : @escaping (Result<Model, NowDataError>))
Met à jour le modèle codable spécifié dans la table spécifiée, puis exécute le completion gestionnaire.
| Nom | Type | Description |
|---|---|---|
| modèle | Modèle | Modèle SysIdentifiableModel à mettre à jour dans la table. |
| dans tableName | Chaîne | Nom de la table dans laquelle écrire les enregistrements , comme incident. |
| codeur | Codeur | Facultatif. Codeur à utiliser pour coder ou décoder les données envoyées et reçues de l’instance ServiceNow .Valeurs possibles :
Par défaut : .default |
| options d’écriture | FieldWriteOptions (en anglais seulement) | Facultatif. Options de configuration à appliquer aux données en cours d’écriture dans l’enregistrement. Par défaut : nul |
| configuration | FetchConfiguration (Récupérer la configuration) | Facultatif. Configuration à appliquer aux enregistrements récupérés, y compris les filtres qui définissent les enregistrements à renvoyer, la limite de taille de page de pagination, les champs à récupérer et les éléments à inclure dans les champs. Par défaut : néant : tous les enregistrements renvoyés. |
| achèvement | @escaping (Result<Model, NowDataError>) | Gestionnaire de complétion à exécuter après la mise à jour du ou des modèles codables spécifiés. Valeurs de retour :
|
| Type | Description |
|---|---|
| Aucun |
L’exemple de code suivant montre comment appeler cette méthode.
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 : update<Model : SysIdentifiableModel>(_ model : Model, in tableName : String, coder : Coder = .default, writeOptions : FieldWriteOptions ? = nil, configuration : FetchConfiguration ? = nil)
Met à jour le modèle codable spécifié dans la table spécifiée.
| Nom | Type | Description |
|---|---|---|
| modèle | Modèle | Modèle SysIdentifiableModel à mettre à jour dans la table. |
| dans tableName | Chaîne | Nom de la table dans laquelle écrire les enregistrements , comme incident. |
| codeur | Codeur | Facultatif. Codeur à utiliser pour coder ou décoder les données envoyées et reçues de l’instance ServiceNow .Valeurs possibles :
Par défaut : .default |
| options d’écriture | FieldWriteOptions (en anglais seulement) | Facultatif. Options de configuration à appliquer aux données en cours d’écriture dans l’enregistrement. Par défaut : nul |
| configuration | FetchConfiguration (Récupérer la configuration) | Facultatif. Configuration à appliquer aux enregistrements récupérés, y compris les filtres qui définissent les enregistrements à renvoyer, la limite de taille de page de pagination, les champs à récupérer et les éléments à inclure dans les champs. Par défaut : néant : tous les enregistrements renvoyés. |
| Type | Description |
|---|---|
| AnyPublisher<Model, NowDataError> | Réussite : modèles décodables qui ont été mis à jour dans la table spécifiée. Échec : NowDataError
|
L’exemple de code suivant montre comment appeler cette méthode.
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) Levées asynchrones
Met à jour l’enregistrement spécifié avec les champs spécifiés.
let dataPublisher: AnyPublisher<Data, NowDataError> = ...
let recordsPublisher: AnyPublisher<[NowRecord], NowDataError> = myPublisher.convertToRecords()est sys_ sont généralement des paramètres système générés automatiquement et qui ne peuvent pas être mis à jour. Les champs qui ne sont pas spécifiés et qui ne sont pas générés automatiquement par le système sont définis sur la valeur null du type de données associé.| Nom | Type | Description |
|---|---|---|
| sysId | Chaîne | Sys_id de l’enregistrement à renvoyer à partir de l’instance ServiceNow . |
| avec champs | [FieldName : FieldValue] | Paires nom-valeur des champs à inclure dans l’enregistrement. |
| dans tableName | Chaîne | Nom de la table dans laquelle écrire les enregistrements , comme incident. |
| options d’écriture | FieldWriteOptions (en anglais seulement) | Facultatif. Options de configuration à appliquer aux données en cours d’écriture dans l’enregistrement. Par défaut : nul |
| configuration | FetchConfiguration (Récupérer la configuration) | Facultatif. Configuration à appliquer aux enregistrements récupérés, y compris les filtres qui définissent les enregistrements à renvoyer, la limite de taille de page de pagination, les champs à récupérer et les éléments à inclure dans les champs. Par défaut : néant : tous les enregistrements renvoyés. |
| Type | Description |
|---|---|
| Données | Renvoyé lorsque la méthode réussit. Objet de données contenant l’enregistrement mis à jour. |
| NowDataError (en anglais seulement) | Levée lorsque la méthode échoue.
|
Les exemples de code suivants montrent comment appeler cette méthode.
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, in tableName : String, avec les champs : [FieldName : FieldValue], writeOptions : FieldWriteOptions ? = nil, configuration : FieldReadConfiguration ? = nil, complétion : @escaping (Result<Data, NowDataError>)
Met à jour l’enregistrement spécifié avec les champs spécifiés, puis exécute le completion gestionnaire une fois l’enregistrement enregistré.
let dataPublisher: AnyPublisher<Data, NowDataError> = ...
let recordsPublisher: AnyPublisher<[NowRecord], NowDataError> = myResult.convertToRecords()est sys_ sont généralement des paramètres système générés automatiquement et qui ne peuvent pas être mis à jour. Les champs qui ne sont pas spécifiés et qui ne sont pas générés automatiquement par le système sont définis sur la valeur null du type de données associé.| Nom | Type | Description |
|---|---|---|
| sysId | Chaîne | Sys_id de l’enregistrement à renvoyer à partir de l’instance ServiceNow . |
| avec champs | [FieldName : FieldValue] | Paires nom-valeur des champs à inclure dans l’enregistrement. |
| dans tableName | Chaîne | Nom de la table dans laquelle écrire les enregistrements , comme incident. |
| options d’écriture | FieldWriteOptions (en anglais seulement) | Facultatif. Options de configuration à appliquer aux données en cours d’écriture dans l’enregistrement. Par défaut : nul |
| configuration | FetchConfiguration (Récupérer la configuration) | Facultatif. Configuration à appliquer aux enregistrements récupérés, y compris les filtres qui définissent les enregistrements à renvoyer, la limite de taille de page de pagination, les champs à récupérer et les éléments à inclure dans les champs. Par défaut : néant : tous les enregistrements renvoyés. |
| achèvement | @escaping (Result<Data, NowDataError>) | Gestionnaire de complétion à exécuter une fois les enregistrements récupérés. Valeurs de retour :
|
| Type | Description |
|---|---|
| Aucun |
L’exemple de code suivant montre comment appeler cette méthode.
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)
Met à jour l’enregistrement spécifié avec les champs spécifiés.
let dataPublisher: AnyPublisher<Data, NowDataError> = ...
let recordsPublisher: AnyPublisher<[NowRecord], NowDataError> = myPublisher.convertToRecords()est sys_ sont généralement des paramètres système générés automatiquement et qui ne peuvent pas être mis à jour. Les champs qui ne sont pas spécifiés et qui ne sont pas générés automatiquement par le système sont définis sur la valeur null du type de données associé.| Nom | Type | Description |
|---|---|---|
| sysId | Chaîne | Sys_id de l’enregistrement à renvoyer à partir de l’instance ServiceNow . |
| avec champs | [FieldName : FieldValue] | Paires nom-valeur des champs à inclure dans l’enregistrement. |
| dans tableName | Chaîne | Nom de la table dans laquelle écrire les enregistrements , comme incident. |
| options d’écriture | FieldWriteOptions (en anglais seulement) | Facultatif. Options de configuration à appliquer aux données en cours d’écriture dans l’enregistrement. Par défaut : nul |
| configuration | FetchConfiguration (Récupérer la configuration) | Facultatif. Configuration à appliquer aux enregistrements récupérés, y compris les filtres qui définissent les enregistrements à renvoyer, la limite de taille de page de pagination, les champs à récupérer et les éléments à inclure dans les champs. Par défaut : néant : tous les enregistrements renvoyés. |
| Type | Description |
|---|---|
| AnyPublisher<Data, NowDataError> | Réussite : objet de données contenant l’enregistrement mis à jour. Échec : NowDataError
|
Cet exemple montre comment créer une fonction qui met à jour un enregistrement dans la table spécifiée, avec les champs spécifiés. La sortie de l’appel est un ByteArray qui vous permet de convertir les données dans n’importe quel modèle que vous voulez.
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)