NowTableService-Klasse – iOS
Die NowTableService -Klasse bietet Funktionen, mit denen Sie Erstellungs-, Lese-, Aktualisierungs- und Löschvorgänge für Datensätze vorhandener ServiceNow -Tabellen ausführen können.
| Name | Typ | Beschreibung |
|---|---|---|
| konfigurieren | NowServiceConfiguration | Konfigurationseinstellungen, die bei der Initialisierung des Service angegeben wurden. |
NowTableService – create<Model: SysIdentifiableModel> (_ model: Model, in tableName: String, coder: Coder, writeOptions: FieldWriteOptions, configuration: FetchConfiguration) async-Auslöser
Fügt das angegebene codierbare Modell in die angegebene Tabelle ein.
Um einen neuen Datensatz nach Modell zu erstellen, muss das Modell dem SysIdentifiableModel- Protokoll entsprechen. Jede Tabelle hat normalerweise ein eigenes Modell.
Der Parameter sys_Id des Modells wird während der Erstellung ignoriert, da [] von der Plattform ServiceNowsysId generiert wird. Die von der Plattform [ ServiceNow generierte sys_Id wird im Ergebnismodell des Handlerscompletion zurückgegeben.
| Name | Typ | Beschreibung |
|---|---|---|
| Modell | SysIdentifiableModel | Modelldefinition der in die Tabelle einzufügenden Felder. |
| in tableName | Zeichenfolge | Name der Tabelle, in die die Datensätze geschrieben werden sollen, z. B. Incident. |
| -Codierer | Codierer | Optional. Codierer zum Codieren oder Decodieren von Daten, die an die Instanz ServiceNow gesendet und von dieser empfangen werden.Mögliche Werte:
Standard: .default |
| writeOptions | FieldWriteOptions | Optional. Konfigurationsoptionen, die auf die Daten angewendet werden sollen, die in den Datensatz geschrieben werden. Standard: nil |
| konfigurieren | Konfiguration abrufen | Optional. Konfiguration, die auf die abgerufenen Datensätze angewendet werden soll, einschließlich Filter, die die zurückzugebenden Datensätze definieren, Größenbeschränkung der Paginierungsseite, abzurufende Felder und was in die Felder aufzunehmen ist. Standard: nil – Alle zurückgegebenen Datensätze. |
| Typ | Beschreibung |
|---|---|
| Modell | Wird zurückgegeben, wenn die Methode erfolgreich ist. Codierbares Modell, das in die angegebene Tabelle eingefügt wurde, einschließlich der sys_Id. Verwenden Sie diese sys_id, um in zukünftigen Methodenaufrufen auf diesen Datensatz zu verweisen. |
| NowDataError | Wird ausgelöst, wenn die Methode fehlschlägt.
|
Das folgende Codebeispiel zeigt, wie diese Methode aufgerufen wird.
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> (_ Modell: Modell, in tableName: Zeichenfolge, Codierer: Coder, writeOptions: FieldWriteOptions, Konfiguration: FetchConfiguration, Abschluss: @escaping (Ergebnis<Model, NowDataError> ))
Fügt das angegebene Codable-Modell in die angegebene Tabelle ein und führt dann den Handler completion aus.
SysIdentifiableModel- Protokoll entsprechen. Jede Tabelle hat normalerweise ein eigenes Modell. Beispiel: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):
...
}
}Der Parameter sys_Id des Modells wird während der Erstellung ignoriert, da [] von der Plattform ServiceNowsysId generiert wird. Die von der Plattform [ ServiceNow generierte sys_Id wird im Ergebnismodell des Handlerscompletion zurückgegeben.
| Name | Typ | Beschreibung |
|---|---|---|
| Modell | SysIdentifiableModel | Modelldefinition der in die Tabelle einzufügenden Felder. |
| in tableName | Zeichenfolge | Name der Tabelle, in die die Datensätze geschrieben werden sollen, z. B. Incident. |
| -Codierer | Codierer | Optional. Codierer zum Codieren oder Decodieren von Daten, die an die Instanz ServiceNow gesendet und von dieser empfangen werden.Mögliche Werte:
Standard: .default |
| writeOptions | FieldWriteOptions | Optional. Konfigurationsoptionen, die auf die Daten angewendet werden sollen, die in den Datensatz geschrieben werden. Standard: nil |
| konfigurieren | Konfiguration abrufen | Optional. Konfiguration, die auf die abgerufenen Datensätze angewendet werden soll, einschließlich Filter, die die zurückzugebenden Datensätze definieren, Größenbeschränkung der Paginierungsseite, abzurufende Felder und was in die Felder aufzunehmen ist. Standard: nil – Alle zurückgegebenen Datensätze. |
| Abschluss | @escaping (Ergebnis<Model, NowDataError> ) | Abschluss-Handler, der nach dem Erstellen der angegebenen decodierbaren Modelle ausgeführt werden soll. Rückgabewerte für den Abschluss-Handler:
|
| Typ | Beschreibung |
|---|---|
| Keine |
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> (Modell: Model, in tableName: Zeichenfolge, Pfad: Zeichenfolge = Constants.resultPath, Codierer: Coder = .default, writeOptions: FieldWriteOptions? = nil, Konfiguration: FetchConfiguration = nil)
Fügt ein codierbares Modell in die angegebene Tabelle ein.
SysIdentifiableModel- Protokoll entsprechen. Jede Tabelle hat normalerweise ein eigenes Modell. Beispiel: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):
...
}
}Rückrufmodell des Herausgebers zurückgegeben.| Name | Typ | Beschreibung |
|---|---|---|
| Modell | SysIdentifiableModel | SysIdentifiableModel- Modell, das in die Tabelle eingefügt werden soll. |
| in tableName | Zeichenfolge | Name der Tabelle, in die die Datensätze geschrieben werden sollen, z. B. Incident. |
| path | Zeichenfolge | Optional. Durch Punkt getrennter Pfad für den geschachtelten Typ. Zum Beispiel „ result “ oder „foo.bar.baz“ für eine tiefere Verschachtelung.Standard: |
| -Codierer | Codierer | Optional. Codierer zum Codieren oder Decodieren von Daten, die an die Instanz ServiceNow gesendet und von dieser empfangen werden.Mögliche Werte:
Standard: .default |
| writeOptions | FieldWriteOptions | Optional. Konfigurationsoptionen, die auf die Daten angewendet werden sollen, die in den Datensatz geschrieben werden. Standard: nil |
| konfigurieren | Konfiguration abrufen | Optional. Konfiguration, die auf die abgerufenen Datensätze angewendet werden soll, einschließlich Filter, die die zurückzugebenden Datensätze definieren, Größenbeschränkung der Paginierungsseite, abzurufende Felder und was in die Felder aufzunehmen ist. Standard: nil – Alle zurückgegebenen Datensätze. |
| Typ | Beschreibung |
|---|---|
| Beliebiger Herausgeber<Model,NowDataError> | Erfolg: Codierbares Modell, das in die angegebene Tabelle eingefügt wurde, einschließlich sys_Id. Verwenden Sie diese sys_id, um in zukünftigen Methodenaufrufen auf diesen Datensatz zu verweisen. Fehler: NowDataError @escaping (Ergebnis<Model, NowDataError> ) |
Zeigt, wie ein einzelner Datensatz in die Benutzertabelle [sys_user] eingefügt wird.
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(with fields: [FieldName: FieldValue], in tableName: String, writeOptions: FieldWriteOptions? = nil, configuration: FieldReadConfiguration? = nil) async wirft
Fügt einen Datensatz in die angegebene Tabelle ein, die die angegebenen Felder enthält.
let dataPublisher: AnyPublisher<Data, NowDataError> = ...
let recordsPublisher: AnyPublisher<[NowRecord], NowDataError> = myPublisher.convertToRecords()sys_ in der Regel Systemparameter, die automatisch generiert werden und nicht aktualisiert werden können. Felder, die nicht angegeben und nicht automatisch vom System generiert werden, werden auf den Nullwert des zugehörigen Datentyps gesetzt.| Name | Typ | Beschreibung |
|---|---|---|
| mit Feldern | [Feldname: FieldValue] | Name-Wert-Paare der Felder, die in den Datensatz aufgenommen werden sollen. |
| in tableName | Zeichenfolge | Name der Tabelle, in die die Datensätze geschrieben werden sollen, z. B. Incident. |
| writeOptions | FieldWriteOptions | Optional. Konfigurationsoptionen, die auf die Daten angewendet werden sollen, die in den Datensatz geschrieben werden. Standard: nil |
| konfigurieren | Konfiguration abrufen | Optional. Konfiguration, die auf die abgerufenen Datensätze angewendet werden soll, einschließlich Filter, die die zurückzugebenden Datensätze definieren, Größenbeschränkung der Paginierungsseite, abzurufende Felder und was in die Felder aufzunehmen ist. Standard: nil – Alle zurückgegebenen Datensätze. |
| Typ | Beschreibung |
|---|---|
| Daten | Wird zurückgegeben, wenn die Methode erfolgreich ist. Datenobjekt, das den neuen Datensatz enthält. |
| NowDataError | Wird ausgelöst, wenn die Methode fehlschlägt.
|
Die folgenden Codebeispiele zeigen, wie diese Methode aufgerufen wird.
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(mit Feldern: [FieldName: FieldValue], in tableName: String, writeOptions: FieldWriteOptions, Konfiguration: FieldReadConfiguration, Abschluss: @escaping (Ergebnis<Data, NowDataError> )
Fügt den angegebenen Datensatz in die angegebene Tabelle ein und führt dann den Handler completion aus, nachdem der Datensatz gespeichert wurde.
let dataPublisher: AnyPublisher<Data, NowDataError> = ...
let recordsPublisher: AnyPublisher<[NowRecord], NowDataError> = myResult.convertToRecords()sys_ in der Regel Systemparameter, die automatisch generiert werden und nicht aktualisiert werden können. Felder, die nicht angegeben und nicht automatisch vom System generiert werden, werden auf den Nullwert des zugehörigen Datentyps gesetzt.| Name | Typ | Beschreibung |
|---|---|---|
| mit Feldern | [Feldname: FieldValue] | Name-Wert-Paare der Felder, die in den Datensatz aufgenommen werden sollen. |
| in tableName | Zeichenfolge | Name der Tabelle, in die die Datensätze geschrieben werden sollen, z. B. Incident. |
| writeOptions | FieldWriteOptions | Optional. Konfigurationsoptionen, die auf die Daten angewendet werden sollen, die in den Datensatz geschrieben werden. Standard: nil |
| konfigurieren | FieldReadConfiguration | Optional. Konfigurationsoptionen, die angeben, welche Felder zurückgegeben werden sollen und was in die Felder aufgenommen werden soll. Standard: nil |
| Abschluss | @escaping (Ergebnis<Data, NowDataError> ) | Abschluss-Handler, der nach dem Abrufen der Datensätze ausgeführt werden soll. Rückgabewerte:
|
| Typ | Beschreibung |
|---|---|
| Keine |
Das folgende Codebeispiel zeigt, wie diese Funktion aufgerufen wird.
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(mit Feldern: [FieldName: FieldValue], in tableName: String, writeOptions: FieldWriteOptions? = nil, configuration: FieldReadConfiguration? = nil)
Fügt einen Datensatz in die angegebene Tabelle ein, die die angegebenen Felder enthält.
let dataPublisher: AnyPublisher<Data, NowDataError> = ...
let recordsPublisher: AnyPublisher<[NowRecord], NowDataError> = myPublisher.convertToRecords()sys_ in der Regel Systemparameter, die automatisch generiert werden und nicht aktualisiert werden können. Felder, die nicht angegeben und nicht automatisch vom System generiert werden, werden auf den Nullwert des zugehörigen Datentyps gesetzt.| Name | Typ | Beschreibung |
|---|---|---|
| mit Feldern | [Feldname: FieldValue] | Name-Wert-Paare der Felder, die in den Datensatz aufgenommen werden sollen. |
| in tableName | Zeichenfolge | Name der Tabelle, in die die Datensätze geschrieben werden sollen, z. B. Incident. |
| writeOptions | FieldWriteOptions | Optional. Konfigurationsoptionen, die auf die Daten angewendet werden sollen, die in den Datensatz geschrieben werden. Standard: nil |
| konfigurieren | Konfiguration abrufen | Optional. Konfiguration, die auf die abgerufenen Datensätze angewendet werden soll, einschließlich Filter, die die zurückzugebenden Datensätze definieren, Größenbeschränkung der Paginierungsseite, abzurufende Felder und was in die Felder aufzunehmen ist. Standard: nil – Alle zurückgegebenen Datensätze. |
| Typ | Beschreibung |
|---|---|
| Beliebiger Herausgeber<Data, NowDataError> | Erfolg: Datenobjekt mit dem aktualisierten Datensatz. Fehler: NowDataError
|
Dieses Beispiel zeigt, wie eine Funktion erstellt wird, die einen Datensatz in die angegebene Tabelle mit den angegebenen Feldern einfügt. Die Ausgabe des Aufrufs ist ein ByteArray, mit dem Sie die Daten in ein beliebiges Modell konvertieren können.
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) async wirft aus
Löscht das angegebene Codable-Modell aus der angegebenen Tabelle.
| Name | Typ | Beschreibung |
|---|---|---|
| Modell | Modell | SysIdentifiableModel, das aus der Tabelle gelöscht werden soll. Sie sollte die sys_id des zu löschenden Datensatzes enthalten. |
| aus tableName | Zeichenfolge | Name der Tabelle, aus der die Informationen gelöscht werden sollen, z. B. Incident. |
| Typ | Beschreibung |
|---|---|
| Keine | Es wird nichts zurückgegeben, wenn die Methode erfolgreich ist. |
| NowDataError | Wird ausgelöst, wenn die Methode fehlschlägt.
|
Die folgenden Codebeispiele zeigen, wie diese Methode aufgerufen wird.
do {
try await tableService.delete(model, from: tableName)
print("Deletion successful.")
} catch {
print("Deletion failed with NowDataError: \(error)")
}
NowTableService – delete(_ model: Modell, aus tableName: Zeichenfolge, Abschluss: @escaping (Ergebnis<Void, NowDataError> ))
Löscht das angegebene Codable-Modell aus der angegebenen Tabelle und führt dann den entsprechenden Handler completion aus.
| Name | Typ | Beschreibung |
|---|---|---|
| Modell | Modell | SysIdentifiableModel, das aus der Tabelle gelöscht werden soll. Sie sollte die sys_id des zu löschenden Datensatzes enthalten. |
| aus tableName | Zeichenfolge | Name der Tabelle, aus der die Informationen gelöscht werden sollen, z. B. Incident. |
| Abschluss | @escaping (Ergebnis<Void, NowDataError> ) | Abschluss-Handler, der nach dem Löschen der angegebenen codierbaren Modelle ausgeführt werden soll. Rückgabewerte:
|
| Typ | Beschreibung |
|---|---|
| Keine |
Das folgende Codebeispiel zeigt, wie diese Funktion aufgerufen wird.
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)
Löscht das angegebene Codable-Modell aus der angegebenen Tabelle.
| Name | Typ | Beschreibung |
|---|---|---|
| Modell | Modell | SysIdentifiableModel, das aus der Tabelle gelöscht werden soll. Sie sollte die sys_id des zu löschenden Datensatzes enthalten. |
| aus tableName | Zeichenfolge | Name der Tabelle, aus der die Informationen gelöscht werden sollen, z. B. Incident. |
| Typ | Beschreibung |
|---|---|
| Beliebiger Herausgeber<Void, NowDataError> | Erfolg: Nichts zurückgegeben Fehler: NowDataError
|
Das folgende Codebeispiel zeigt, wie diese Funktion aufgerufen wird.
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) async löst aus
Löscht den angegebenen Datensatz aus der angegebenen Tabelle.
| Name | Typ | Beschreibung |
|---|---|---|
| sysId | Zeichenfolge | Sys_id des zu löschenden Datensatzes. |
| aus tableName | Zeichenfolge | Name der Tabelle, aus der die Informationen gelöscht werden sollen, z. B. Incident. |
| Typ | Beschreibung |
|---|---|
| Keine | Es wird nichts zurückgegeben, wenn die Methode erfolgreich ist. |
| NowDataError | Wird ausgelöst, wenn die Methode fehlschlägt.
|
Die folgenden Codebeispiele zeigen, wie diese Methode aufgerufen wird.
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, abgeschlossen: @escaping (Result<Void, NowDataError> ))
Löscht den angegebenen Datensatz aus der angegebenen Tabelle und führt das Objekt completion aus, nachdem der Datensatz gelöscht wurde.
| Name | Typ | Beschreibung |
|---|---|---|
| sysId | Zeichenfolge | Sys_id des zu löschenden Datensatzes. |
| aus tableName | Zeichenfolge | Name der Tabelle, aus der die Informationen gelöscht werden sollen, z. B. Incident. |
| Abschluss | @escaping (Ergebnis<Void, NowDataError> ) | Erfolg: Es wird nichts zurückgegeben. Fehler: NowDataError
|
| Typ | Beschreibung |
|---|---|
| Keine |
Das folgende Codebeispiel zeigt, wie diese Funktion aufgerufen wird.
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)
Löscht den angegebenen Datensatz aus der angegebenen Tabelle.
| Name | Typ | Beschreibung |
|---|---|---|
| sysId | Zeichenfolge | Sys_id des zu löschenden Datensatzes. |
| aus tableName | Zeichenfolge | Name der Tabelle, aus der die Informationen gelöscht werden sollen, z. B. Incident. |
| Typ | Beschreibung |
|---|---|
| Beliebiger Herausgeber<Void, NowDataError> | Erfolg: Nichts zurückgegeben Fehler: NowDataError
|
Dieses Beispiel zeigt, wie Sie eine Funktion erstellen, die einen Datensatz in einer angegebenen Tabelle löscht.
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: NowCoreServiceProvider? = nil)
Erstellt ein NowTableService-Objekt.
| Name | Typ | Beschreibung |
|---|---|---|
| konfigurieren | NowServiceConfiguration | Konfigurationsparameter, die beim Erstellen des Service verwendet werden sollen. |
| coreServiceProvider | NowCoreServiceProvider | Optional. Service Provider, der dem NowTableService zugeordnet werden soll. Standard: nil |
Das folgende Codebeispiel zeigt, wie diese Funktion aufgerufen wird.
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> (mit sysId: SysID? = nil, aus tableName: String, path: String = Constants.resultPath, coder: Coder = .default, configuration: FetchConfiguration? = nil) async wirft
Ermöglicht das Abrufen von decodierbaren Modellen aus einer angegebenen Tabelle.
{
"result": [
{ "name": "Ash Williams" },
{ "name": "Lionel Cosgrove" },
{ "name": "Laurie Strode" }
]
}Verwenden Sie für große Ergebnismengen eine der Paginatorfunktionen NowTableService – paginator(from tableName: String, configuration: FetchConfiguration? = nil) oder NowTableService – paginator<Model: Decodable> (aus tableName: Zeichenfolge, Pfad: Zeichenfolge = Constants.resultPath, Codierer: Codierer = .default, Konfiguration: FetchConfiguration? = nil), um paginierte Modelle abzurufen.| Name | Typ | Beschreibung |
|---|---|---|
| mit sysId | SysID | Optional. Sys_id des zurückzugebenden Datensatzes. Geben Sie die sys_id an, wenn Sie einen bestimmten Datensatz abrufen möchten. Standard: nil |
| aus tableName | Zeichenfolge | Name der Tabelle, aus der die Datensätze abgerufen werden sollen, z. B. Incident. |
| path | Zeichenfolge | Durch Punkt getrennter Pfad für den geschachtelten Typ. Zum Beispiel „ result “ oder „foo.bar.baz“ für eine tiefere Verschachtelung.Standard: |
| -Codierer | Codierer | Optional. Codierer zum Codieren oder Decodieren von Daten, die an die Instanz ServiceNow gesendet und von dieser empfangen werden.Mögliche Werte:
Standard: .default |
| konfigurieren | Konfiguration abrufen | Optional. Konfiguration, die auf die abgerufenen Datensätze angewendet werden soll, einschließlich Filter, die die zurückzugebenden Datensätze definieren, Größenbeschränkung der Paginierungsseite, abzurufende Felder und was in die Felder aufzunehmen ist. Standard: nil – Alle zurückgegebenen Datensätze. |
| Typ | Beschreibung |
|---|---|
| Modell | Wird zurückgegeben, wenn die Methode erfolgreich ist. Decodierbare(s) Modell(e). |
| NowDataError | Wird ausgelöst, wenn die Methode fehlschlägt.
|
Das folgende Codebeispiel zeigt, wie diese Methode aufgerufen wird.
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)
}
Das folgende Codebeispiel zeigt, wie ein einzelnes Decodable-Modell nach sys_id abgerufen wird. Verwenden Sie einen einzelnen Modelltyp, z. B. User.self, anstatt [User].self.
let result = try await service.model(User.self, with: "5137153cc611227c000bbd1bd8cd2005", from: "sys_user", path: "result")
NowTableService – model<Model: Decodable> (_ Typ: Model.Type, mit sysId: SysID? = nil, aus tableName: Zeichenfolge, Pfad: Zeichenfolge = Constants.resultPath, Codierer: Coder = .default, Konfiguration: FetchConfiguration? = nil, Abschluss: @escaping (Ergebnis<Model, NowDataError> ))
Ruft decodierbare Modelle aus einer angegebenen Tabelle ab.
{
"result": [
{ "name": "Ash Williams" },
{ "name": "Lionel Cosgrove" },
{ "name": "Laurie Strode" }
]
}Verwenden Sie diese Funktion, um decodierbare Modelle anstelle einer verschachtelten Ausgabe zu erhalten.
| Name | Typ | Beschreibung |
|---|---|---|
| type | Modell.Typ | Typ des zu decodierenden Werts. |
| mit sysId | Zeichenfolge | Optional. Sys_id des zurückzugebenden Datensatzes. Standard: Alle Datensätze, die gemäß den configuration -Einstellungen zurückgegeben werden. |
| aus tableName | Zeichenfolge | Name der Tabelle, aus der die Datensätze abgerufen werden sollen, z. B. Incident. |
| path | Zeichenfolge | Optional. Durch Punkt getrennter Pfad für den geschachtelten Typ. Zum Beispiel „ result “ oder „foo.bar.baz“ für eine tiefere Verschachtelung.Standard: |
| -Codierer | Codierer | Optional. Codierer zum Codieren oder Decodieren von Daten, die an die Instanz ServiceNow gesendet und von dieser empfangen werden.Standard: |
| konfigurieren | Konfiguration abrufen | Optional. Konfiguration, die auf die abgerufenen Datensätze angewendet werden soll, einschließlich Filter, die die zurückzugebenden Datensätze definieren, Größenbeschränkung der Paginierungsseite, abzurufende Felder und was in die Felder aufzunehmen ist. Standard: nil – Alle zurückgegebenen Datensätze. |
| Abschluss | @escaping (Ergebnis<Model, NowDataError> ) | Abschluss-Handler, der nach dem Abrufen der angegebenen decodierbaren Modelle ausgeführt werden soll. Rückgabewerte für den Abschluss-Handler:
|
| Typ | Beschreibung |
|---|---|
| Keine |
So rufen Sie eine Sammlung decodierter User Modelle ab.
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):
...
}
}
Um ein einzelnes decodierbares Modell nach sys_id abzurufen, verwenden Sie einen einzelnen Modelltyp, z. B. User.self, anstatt [User].self.
service.model(User.self, with: "5137153cc611227c000bbd1bd8cd2005", from: "sys_user", path: "result") { resultin ... }
NowTableService – model<Model: Decodable> (mit sysId: SysID? = nil, aus tableName: Zeichenfolge, Pfad: Zeichenfolge = Constants.resultPath, Codierer: Coder = .default, Konfiguration: FetchConfiguration? = nil)
Erstellt einen Herausgeber, der das Abrufen von decodierbaren Modellen aus einer angegebenen Tabelle ermöglicht.
{
"result": [
{ "name": "Ash Williams" },
{ "name": "Lionel Cosgrove" },
{ "name": "Laurie Strode" }
]
}Verwenden Sie für große Ergebnismengen eine der Paginatorfunktionen NowTableService – paginator(from tableName: String, configuration: FetchConfiguration? = nil) oder NowTableService – paginator<Model: Decodable> (aus tableName: Zeichenfolge, Pfad: Zeichenfolge = Constants.resultPath, Codierer: Codierer = .default, Konfiguration: FetchConfiguration? = nil), um paginierte Modelle abzurufen.| Name | Typ | Beschreibung |
|---|---|---|
| mit sysId | SysID | Optional. Sys_id des zurückzugebenden Datensatzes. Geben Sie die sys_id an, wenn Sie einen bestimmten Datensatz abrufen möchten. Standard: nil |
| aus tableName | Zeichenfolge | Name der Tabelle, aus der die Datensätze abgerufen werden sollen, z. B. Incident. |
| path | Zeichenfolge | Durch Punkt getrennter Pfad für den geschachtelten Typ. Zum Beispiel „ result “ oder „foo.bar.baz“ für eine tiefere Verschachtelung.Standard: |
| -Codierer | Codierer | Optional. Codierer zum Codieren oder Decodieren von Daten, die an die Instanz ServiceNow gesendet und von dieser empfangen werden.Mögliche Werte:
Standard: .default |
| konfigurieren | Konfiguration abrufen | Optional. Konfiguration, die auf die abgerufenen Datensätze angewendet werden soll, einschließlich Filter, die die zurückzugebenden Datensätze definieren, Größenbeschränkung der Paginierungsseite, abzurufende Felder und was in die Felder aufzunehmen ist. Standard: nil – Alle zurückgegebenen Datensätze. |
| Typ | Beschreibung |
|---|---|
| Beliebiger Herausgeber<Model, NowDataError> | Erfolg: Herausgeber gibt ein oder mehrere decodierbare Modelle zurück. Fehler: NowDataError
|
Um einen Herausgeber zu erhalten, der decodierte Benutzermodelle nach Typ bereitstellt, z. B. [Users].self, rufen Sie die Modelle durch Angabe eines durch Punkte getrennten Pfads ab.
struct User: Codable {
varname: String
}
let service: NowTableService = ...
let publisher: AnyPublisher<[User], NowDataError> = service.model(from: "sys_user", path: "user.photos.gps_location")
Um ein einzelnes decodierbares Modell nach sys_id abzurufen, verwenden Sie einen einzelnen User.self -Modelltyp anstelle von [User].self.
let publisher: AnyPublisher<User, NowDataError> = service.model(with: "5137153cc611227c000bbd1bd8cd2005", from: "sys_user", path: "result")
NowTableService – paginator(from tableName: String, configuration: FetchConfiguration? = nil)
Erstellt einen Paginator, der das Durchlaufen von Seiten mit Datensätzen ermöglicht.
let dataPublisher: AnyPublisher<Data, NowDataError> = ...
let recordsPublisher: AnyPublisher<[NowRecord], NowDataError> = myPublisher.convertToRecords()| Name | Typ | Beschreibung |
|---|---|---|
| tableName | Zeichenfolge | Name der Tabelle, aus der die Datensätze abgerufen werden sollen, z. B. Incident. |
| konfigurieren | Konfiguration abrufen | Optional. Konfiguration, die auf die abgerufenen Datensätze angewendet werden soll, einschließlich Filter, die die zurückzugebenden Datensätze definieren, Größenbeschränkung der Paginierungsseite, abzurufende Felder und was in die Felder aufzunehmen ist. Standard: nil – Alle zurückgegebenen Datensätze. |
| Typ | Beschreibung |
|---|---|
| Paginator<Data> | Erfolg: Paginator-Objekt mit den angegebenen Datensätzen. Fehler: 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> (aus tableName: Zeichenfolge, Pfad: Zeichenfolge = Constants.resultPath, Codierer: Codierer = .default, Konfiguration: FetchConfiguration? = nil)
Erstellt einen Paginator, der die Iteration von Seiten von decodierten Modellen ermöglicht, die die Verschachtelung verarbeiten.
{
"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)| Name | Typ | Beschreibung |
|---|---|---|
| aus tableName | Zeichenfolge | Name der Tabelle, aus der die Datensätze abgerufen werden sollen, z. B. Incident. |
| Pfad | Zeichenfolge | Durch Punkt getrennter Pfad für den geschachtelten Typ. Beispiel: result oder result.user.photos für eine tiefere Verschachtelung. Durch die Angabe eines benutzerdefinierten Pfads können verschachtelte Daten abgerufen oder durchlaufen werden.Standard: |
| -Codierer | Codierer | Optional. Codierer zum Codieren oder Decodieren von Daten, die an die Instanz ServiceNow gesendet und von dieser empfangen werden.Mögliche Werte:
Standard: .default |
| konfigurieren | Konfiguration abrufen | Optional. Konfiguration, die auf die abgerufenen Datensätze angewendet werden soll, einschließlich Filter, die die zurückzugebenden Datensätze definieren, Größenbeschränkung der Paginierungsseite, abzurufende Felder und was in die Felder aufzunehmen ist. Standard: nil – Alle zurückgegebenen Datensätze. |
| Typ | Beschreibung |
|---|---|
| Paginator<Data> | Erfolg: Paginator-Objekt mit ausgelagerten decodierbaren Modellen.Fehler: NowDataError
|
Dieses Beispiel zeigt, wie Sie ein Paginator-Objekt erhalten, das decodierte Benutzermodelle bereitstellt. Sie können das gewünschte Paginator-Objekt abrufen, indem Sie den Compiler anweisen, eine Sammlung von Benutzermodellen ([Benutzer]) zurückzugeben, und das Paginator-Objekt darüber informieren, dass die Benutzer unter dem Ergebnispfad verschachtelt sind.
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) async wirft
Ruft einen angegebenen Datensatz aus der angegebenen Tabelle in einer ServiceNow -Instanz ab.
let dataPublisher: AnyPublisher<Data, NowDataError> = ...
let recordsPublisher: AnyPublisher<[NowRecord], NowDataError> = myPublisher.convertToRecords()| Name | Typ | Beschreibung |
|---|---|---|
| sysId | Zeichenfolge | Sys_id des Datensatzes, der von der Instanz ServiceNow zurückgegeben werden soll. |
| aus tableName | Zeichenfolge | Name der Tabelle, aus der die Datensätze abgerufen werden sollen, z. B. Incident. |
| konfigurieren | Konfiguration abrufen | Optional. Konfiguration, die auf die abgerufenen Datensätze angewendet werden soll, einschließlich Filter, die die zurückzugebenden Datensätze definieren, Größenbeschränkung der Paginierungsseite, abzurufende Felder und was in die Felder aufzunehmen ist. Standard: nil – Alle zurückgegebenen Datensätze. |
| Typ | Beschreibung |
|---|---|
| Daten | Wird zurückgegeben, wenn die Methode erfolgreich ist. Datenobjekt, das den angegebenen Datensatz enthält. |
| NowDataError | Wird ausgelöst, wenn die Methode fehlschlägt.
|
Die folgenden Codebeispiele zeigen, wie diese Methode aufgerufen wird.
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(mit sysId: SysID, aus tableName: Zeichenfolge, Konfiguration: FieldReadConfiguration, Abschluss: @escaping (Ergebnis<Data, NowDataError> )
Ruft den angegebenen Datensatz aus der angegebenen Tabelle ab und führt dann einen Abschluss-Handler aus, nachdem der Datensatz abgerufen wurde.
let dataPublisher: AnyPublisher<Data, NowDataError> = ...
let recordsPublisher: AnyPublisher<[NowRecord], NowDataError> = myResult.convertToRecords() Verwenden Sie für große Ergebnismengen die Funktion NowTableService – paginator(from tableName: String, configuration: FetchConfiguration? = nil), um paginierte Ergebnisse abzurufen.| Name | Typ | Beschreibung |
|---|---|---|
| sysId | Zeichenfolge | Sys_id des Datensatzes, der von der Instanz ServiceNow zurückgegeben werden soll. |
| aus tableName | Zeichenfolge | Name der Tabelle, aus der die Datensätze abgerufen werden sollen, z. B. Incident. |
| konfigurieren | Konfiguration abrufen | Optional. Konfiguration, die auf die abgerufenen Datensätze angewendet werden soll, einschließlich Filter, die die zurückzugebenden Datensätze definieren, Größenbeschränkung der Paginierungsseite, abzurufende Felder und was in die Felder aufzunehmen ist. Standard: nil – Alle zurückgegebenen Datensätze. |
| Abschluss | @escaping (Ergebnis<Data, NowDataError> ) | Abschluss-Handler, der nach dem Abrufen der Datensätze ausgeführt werden soll. Rückgabewerte:
|
| Typ | Beschreibung |
|---|---|
| Keine |
Das folgende Codebeispiel zeigt, wie diese Methode aufgerufen wird.
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)
Erstellt einen Herausgeber, um einen angegebenen Datensatz aus der angegebenen Tabelle in einer ServiceNow -Instanz abzurufen.
let dataPublisher: AnyPublisher<Data, NowDataError> = ...
let recordsPublisher: AnyPublisher<[NowRecord], NowDataError> = myPublisher.convertToRecords()| Name | Typ | Beschreibung |
|---|---|---|
| sysId | Zeichenfolge | Sys_id des Datensatzes, der von der Instanz ServiceNow zurückgegeben werden soll. |
| aus tableName | Zeichenfolge | Name der Tabelle, aus der die Datensätze abgerufen werden sollen, z. B. Incident. |
| konfigurieren | Konfiguration abrufen | Optional. Konfiguration, die auf die abgerufenen Datensätze angewendet werden soll, einschließlich Filter, die die zurückzugebenden Datensätze definieren, Größenbeschränkung der Paginierungsseite, abzurufende Felder und was in die Felder aufzunehmen ist. Standard: nil – Alle zurückgegebenen Datensätze. |
| Typ | Beschreibung |
|---|---|
| Beliebiger Herausgeber<Data, NowDataError> | Erfolg: Datenobjekt mit den angegebenen Datensätzen. Fehler: NowDataError
|
Dieses Beispiel zeigt, wie eine Funktion erstellt wird, die den angegebenen Datensatz aus der angegebenen Tabelle mit den angegebenen Feldern abruft. Die Ausgabe des Aufrufs ist ein ByteArray, mit dem Sie die Daten in ein beliebiges Modell konvertieren können.
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) async wirft
Ruft Datensätze aus der angegebenen Tabelle ab.
let dataPublisher: AnyPublisher<Data, NowDataError> = ...
let recordsPublisher: AnyPublisher<[NowRecord], NowDataError> = myPublisher.convertToRecords() Verwenden Sie für große Ergebnismengen die Funktion NowTableService – paginator(from tableName: String, configuration: FetchConfiguration? = nil), um paginierte Ergebnisse abzurufen.| Name | Typ | Beschreibung |
|---|---|---|
| aus tableName | Zeichenfolge | Name der Tabelle, aus der die Datensätze abgerufen werden sollen, z. B. Incident. |
| konfigurieren | Konfiguration abrufen | Optional. Konfiguration, die auf die abgerufenen Datensätze angewendet werden soll, einschließlich Filter, die die zurückzugebenden Datensätze definieren, Größenbeschränkung der Paginierungsseite, abzurufende Felder und was in die Felder aufzunehmen ist. Standard: nil – Alle zurückgegebenen Datensätze. |
| Typ | Beschreibung |
|---|---|
| Daten | Wird zurückgegeben, wenn die Methode erfolgreich ist. Datenobjekt, das die angegebenen Datensätze enthält. |
| NowDataError | Wird ausgelöst, wenn die Methode fehlschlägt.
|
Das folgende Codebeispiel zeigt, wie diese Methode aufgerufen wird.
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, Konfiguration: FetchConfiguration? = nil, Abschluss: @escaping (Ergebnis<Data, NowDataError> ))
Ruft Datensätze aus einer angegebenen Tabelle ab und führt dann den Handler completion aus, nachdem die Datensätze abgerufen wurden.
let dataPublisher: AnyPublisher<Data, NowDataError> = ...
let recordsPublisher: AnyPublisher<[NowRecord], NowDataError> = myResult.convertToRecords() Verwenden Sie für große Ergebnismengen die Funktion NowTableService – paginator(from tableName: String, configuration: FetchConfiguration? = nil), um paginierte Ergebnisse abzurufen.| Name | Typ | Beschreibung |
|---|---|---|
| in tableName | Zeichenfolge | Name der Tabelle, in die die Datensätze geschrieben werden sollen, z. B. Incident. |
| konfigurieren | Konfiguration abrufen | Optional. Konfiguration, die auf die abgerufenen Datensätze angewendet werden soll, einschließlich Filter, die die zurückzugebenden Datensätze definieren, Größenbeschränkung der Paginierungsseite, abzurufende Felder und was in die Felder aufzunehmen ist. Standard: nil – Alle zurückgegebenen Datensätze. |
| Abschluss | @escaping (Ergebnis<Data, NowDataError> ) | Abschluss-Handler, der nach dem Abrufen der Datensätze ausgeführt werden soll. Rückgabewerte:
|
| Typ | Beschreibung |
|---|---|
| Keine |
Das folgende Codebeispiel zeigt, wie diese Methode aufgerufen wird.
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)
Erstellt einen Herausgeber, mit dem Sie Datensätze aus der angegebenen Tabelle abrufen können.
let dataPublisher: AnyPublisher<Data, NowDataError> = ...
let recordsPublisher: AnyPublisher<[NowRecord], NowDataError> = myPublisher.convertToRecords() Verwenden Sie für große Ergebnismengen die Funktion NowTableService – paginator(from tableName: String, configuration: FetchConfiguration? = nil), um paginierte Ergebnisse abzurufen.| Name | Typ | Beschreibung |
|---|---|---|
| aus tableName | Zeichenfolge | Name der Tabelle, aus der die Datensätze abgerufen werden sollen, z. B. Incident. |
| konfigurieren | Konfiguration abrufen | Optional. Konfiguration, die auf die abgerufenen Datensätze angewendet werden soll, einschließlich Filter, die die zurückzugebenden Datensätze definieren, Größenbeschränkung der Paginierungsseite, abzurufende Felder und was in die Felder aufzunehmen ist. Standard: nil – Alle zurückgegebenen Datensätze. |
| Typ | Beschreibung |
|---|---|
| Beliebiger Herausgeber<Data, NowDataError> | Erfolg: Datenobjekt mit den angegebenen Datensätzen. Fehler: NowDataError
|
Dieses Beispiel zeigt, wie eine Funktion erstellt wird, die mehrere Datensätze aus einer angegebenen Tabelle abruft. Es wird ein Objekt erstellt, das die Ausführung der Anforderung zu einem späteren Zeitpunkt plant und eine ByteArray-Antwort zurückgibt.
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) async wirft
Aktualisiert das angegebene codierbare Modell in der angegebenen Tabelle.
| Name | Typ | Beschreibung |
|---|---|---|
| Modell | Modell | SysIdentifiableModel- Modell, das in der Tabelle aktualisiert werden soll. |
| in tableName | Zeichenfolge | Name der Tabelle, in die die Datensätze geschrieben werden sollen, z. B. Incident. |
| -Codierer | Codierer | Optional. Codierer zum Codieren oder Decodieren von Daten, die an die Instanz ServiceNow gesendet und von dieser empfangen werden.Mögliche Werte:
Standard: .default |
| writeOptions | FieldWriteOptions | Optional. Konfigurationsoptionen, die auf die Daten angewendet werden sollen, die in den Datensatz geschrieben werden. Standard: nil |
| konfigurieren | Konfiguration abrufen | Optional. Konfiguration, die auf die abgerufenen Datensätze angewendet werden soll, einschließlich Filter, die die zurückzugebenden Datensätze definieren, Größenbeschränkung der Paginierungsseite, abzurufende Felder und was in die Felder aufzunehmen ist. Standard: nil – Alle zurückgegebenen Datensätze. |
| Typ | Beschreibung |
|---|---|
| Modell | Wird zurückgegeben, wenn die Methode erfolgreich ist. Decodierbares Modell, das in der angegebenen Tabelle aktualisiert wurde. |
| NowDataError | Wird ausgelöst, wenn die Methode fehlschlägt.
|
Die folgenden Codebeispiele zeigen, wie diese Methode aufgerufen wird.
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> (_ Modell: Modell, in tableName: Zeichenfolge, Codierer: Coder = .default, writeOptions: FieldWriteOptions? = nil, Konfiguration: FetchConfiguration? = nil, Abschluss: @escaping (Ergebnis<Model, NowDataError> ))
Aktualisiert das angegebene Codable-Modell in der angegebenen Tabelle und führt dann den Handler completion aus.
| Name | Typ | Beschreibung |
|---|---|---|
| Modell | Modell | SysIdentifiableModel- Modell, das in der Tabelle aktualisiert werden soll. |
| in tableName | Zeichenfolge | Name der Tabelle, in die die Datensätze geschrieben werden sollen, z. B. Incident. |
| -Codierer | Codierer | Optional. Codierer zum Codieren oder Decodieren von Daten, die an die Instanz ServiceNow gesendet und von dieser empfangen werden.Mögliche Werte:
Standard: .default |
| writeOptions | FieldWriteOptions | Optional. Konfigurationsoptionen, die auf die Daten angewendet werden sollen, die in den Datensatz geschrieben werden. Standard: nil |
| konfigurieren | Konfiguration abrufen | Optional. Konfiguration, die auf die abgerufenen Datensätze angewendet werden soll, einschließlich Filter, die die zurückzugebenden Datensätze definieren, Größenbeschränkung der Paginierungsseite, abzurufende Felder und was in die Felder aufzunehmen ist. Standard: nil – Alle zurückgegebenen Datensätze. |
| Abschluss | @escaping (Ergebnis<Model, NowDataError> ) | Abschluss-Handler, der nach dem Aktualisieren der angegebenen codierbaren Modelle ausgeführt werden soll. Rückgabewerte:
|
| Typ | Beschreibung |
|---|---|
| Keine |
Das folgende Codebeispiel zeigt, wie diese Methode aufgerufen wird.
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)
Aktualisiert das angegebene codierbare Modell in der angegebenen Tabelle.
| Name | Typ | Beschreibung |
|---|---|---|
| Modell | Modell | SysIdentifiableModel- Modell, das in der Tabelle aktualisiert werden soll. |
| in tableName | Zeichenfolge | Name der Tabelle, in die die Datensätze geschrieben werden sollen, z. B. Incident. |
| -Codierer | Codierer | Optional. Codierer zum Codieren oder Decodieren von Daten, die an die Instanz ServiceNow gesendet und von dieser empfangen werden.Mögliche Werte:
Standard: .default |
| writeOptions | FieldWriteOptions | Optional. Konfigurationsoptionen, die auf die Daten angewendet werden sollen, die in den Datensatz geschrieben werden. Standard: nil |
| konfigurieren | Konfiguration abrufen | Optional. Konfiguration, die auf die abgerufenen Datensätze angewendet werden soll, einschließlich Filter, die die zurückzugebenden Datensätze definieren, Größenbeschränkung der Paginierungsseite, abzurufende Felder und was in die Felder aufzunehmen ist. Standard: nil – Alle zurückgegebenen Datensätze. |
| Typ | Beschreibung |
|---|---|
| Beliebiger Herausgeber<Model, NowDataError> | Erfolg: Decodierbare Modelle, die in der angegebenen Tabelle aktualisiert wurden. Fehler: NowDataError
|
Das folgende Codebeispiel zeigt, wie diese Methode aufgerufen wird.
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) async wirft
Aktualisiert den angegebenen Datensatz mit den angegebenen Feldern.
let dataPublisher: AnyPublisher<Data, NowDataError> = ...
let recordsPublisher: AnyPublisher<[NowRecord], NowDataError> = myPublisher.convertToRecords()sys_ in der Regel Systemparameter, die automatisch generiert werden und nicht aktualisiert werden können. Felder, die nicht angegeben und nicht automatisch vom System generiert werden, werden auf den Nullwert des zugehörigen Datentyps gesetzt.| Name | Typ | Beschreibung |
|---|---|---|
| sysId | Zeichenfolge | Sys_id des Datensatzes, der von der Instanz ServiceNow zurückgegeben werden soll. |
| mit Feldern | [Feldname: FieldValue] | Name-Wert-Paare der Felder, die in den Datensatz aufgenommen werden sollen. |
| in tableName | Zeichenfolge | Name der Tabelle, in die die Datensätze geschrieben werden sollen, z. B. Incident. |
| writeOptions | FieldWriteOptions | Optional. Konfigurationsoptionen, die auf die Daten angewendet werden sollen, die in den Datensatz geschrieben werden. Standard: nil |
| konfigurieren | Konfiguration abrufen | Optional. Konfiguration, die auf die abgerufenen Datensätze angewendet werden soll, einschließlich Filter, die die zurückzugebenden Datensätze definieren, Größenbeschränkung der Paginierungsseite, abzurufende Felder und was in die Felder aufzunehmen ist. Standard: nil – Alle zurückgegebenen Datensätze. |
| Typ | Beschreibung |
|---|---|
| Daten | Wird zurückgegeben, wenn die Methode erfolgreich ist. Datenobjekt, das den aktualisierten Datensatz enthält. |
| NowDataError | Wird ausgelöst, wenn die Methode fehlschlägt.
|
Die folgenden Codebeispiele zeigen, wie diese Methode aufgerufen wird.
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, with fields: [FieldName: FieldValue], writeOptions: FieldWriteOptions? = nil, configuration: FieldReadConfiguration? = nil, abgeschlossen: @escaping (Result<Data, NowDataError> )
Aktualisiert den angegebenen Datensatz mit den angegebenen Feldern und führt dann den Handler completion aus, sobald der Datensatz gespeichert wurde.
let dataPublisher: AnyPublisher<Data, NowDataError> = ...
let recordsPublisher: AnyPublisher<[NowRecord], NowDataError> = myResult.convertToRecords()sys_ in der Regel Systemparameter, die automatisch generiert werden und nicht aktualisiert werden können. Felder, die nicht angegeben und nicht automatisch vom System generiert werden, werden auf den Nullwert des zugehörigen Datentyps gesetzt.| Name | Typ | Beschreibung |
|---|---|---|
| sysId | Zeichenfolge | Sys_id des Datensatzes, der von der Instanz ServiceNow zurückgegeben werden soll. |
| mit Feldern | [Feldname: FieldValue] | Name-Wert-Paare der Felder, die in den Datensatz aufgenommen werden sollen. |
| in tableName | Zeichenfolge | Name der Tabelle, in die die Datensätze geschrieben werden sollen, z. B. Incident. |
| writeOptions | FieldWriteOptions | Optional. Konfigurationsoptionen, die auf die Daten angewendet werden sollen, die in den Datensatz geschrieben werden. Standard: nil |
| konfigurieren | Konfiguration abrufen | Optional. Konfiguration, die auf die abgerufenen Datensätze angewendet werden soll, einschließlich Filter, die die zurückzugebenden Datensätze definieren, Größenbeschränkung der Paginierungsseite, abzurufende Felder und was in die Felder aufzunehmen ist. Standard: nil – Alle zurückgegebenen Datensätze. |
| Abschluss | @escaping (Ergebnis<Data, NowDataError> ) | Abschluss-Handler, der nach dem Abrufen der Datensätze ausgeführt werden soll. Rückgabewerte:
|
| Typ | Beschreibung |
|---|---|
| Keine |
Das folgende Codebeispiel zeigt, wie diese Methode aufgerufen wird.
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)
Aktualisiert den angegebenen Datensatz mit den angegebenen Feldern.
let dataPublisher: AnyPublisher<Data, NowDataError> = ...
let recordsPublisher: AnyPublisher<[NowRecord], NowDataError> = myPublisher.convertToRecords()sys_ in der Regel Systemparameter, die automatisch generiert werden und nicht aktualisiert werden können. Felder, die nicht angegeben und nicht automatisch vom System generiert werden, werden auf den Nullwert des zugehörigen Datentyps gesetzt.| Name | Typ | Beschreibung |
|---|---|---|
| sysId | Zeichenfolge | Sys_id des Datensatzes, der von der Instanz ServiceNow zurückgegeben werden soll. |
| mit Feldern | [Feldname: FieldValue] | Name-Wert-Paare der Felder, die in den Datensatz aufgenommen werden sollen. |
| in tableName | Zeichenfolge | Name der Tabelle, in die die Datensätze geschrieben werden sollen, z. B. Incident. |
| writeOptions | FieldWriteOptions | Optional. Konfigurationsoptionen, die auf die Daten angewendet werden sollen, die in den Datensatz geschrieben werden. Standard: nil |
| konfigurieren | Konfiguration abrufen | Optional. Konfiguration, die auf die abgerufenen Datensätze angewendet werden soll, einschließlich Filter, die die zurückzugebenden Datensätze definieren, Größenbeschränkung der Paginierungsseite, abzurufende Felder und was in die Felder aufzunehmen ist. Standard: nil – Alle zurückgegebenen Datensätze. |
| Typ | Beschreibung |
|---|---|
| Beliebiger Herausgeber<Data, NowDataError> | Erfolg: Datenobjekt mit dem aktualisierten Datensatz. Fehler: NowDataError
|
Dieses Beispiel zeigt, wie eine Funktion erstellt wird, die einen Datensatz in der angegebenen Tabelle mit den angegebenen Feldern aktualisiert. Die Ausgabe des Aufrufs ist ein ByteArray, mit dem Sie die Daten in ein beliebiges Modell konvertieren können.
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)