NowTableService-Klasse – iOS
Die Klasse NowTableService bietet Funktionen zum Ausführen von Erstellungs-, Lese-, Aktualisierungs- und Löschvorgängen für Datensätze vorhandener Tabellen ServiceNow.
| Name | Typ | Beschreibung |
|---|---|---|
| konfigurieren | NowServiceKonfiguration | Konfigurationseinstellungen, die bei der Initialisierung des Service angegeben wurden. |
NowTableService – erstellen<Model: SysIdentifiableModel> (_ model: Model, in tableName: String, coder: Coder, writeOptions: FieldWriteOptions, Konfiguration: FetchConfiguration) asynchrone Würfe
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. Das von der Plattform [ ServiceNow generierte Ergebnis sys_Id wird im Ergebnismodell des Handlerscompletion zurückgegeben.
| Name | Typ | Beschreibung |
|---|---|---|
| Modell | SysIdentifiableModel | Modelldefinition der Felder, die in die Tabelle eingefügt werden sollen. |
| in tableName | Zeichenfolge | Name der Tabelle, in die die Datensätze geschrieben werden sollen, z. B. Incident. |
| Coder | Codierer | Optional. Codierer zum Codieren oder Decodieren von Daten, die an die Instanz ServiceNow gesendet und von ihr empfangen werden.Mögliche Werte:
Standard: .default |
| writeOptions | FeldSchreiboptionen | Optional. Konfigurationsoptionen, die auf die Daten angewendet werden sollen, die in den Datensatz geschrieben werden. Standard: null |
| konfigurieren | RufenKonfiguration ab | Optional. Konfiguration, die auf die abgerufenen Datensätze angewendet werden soll, einschließlich Filter, die die zurückzugebenden Datensätze, die Größenbeschränkung für Paginierungsseiten, die abzurufenden Felder und das, was in die Felder aufgenommen werden soll, definieren. 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 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 – erstellen<Model: SysIdentifiableModel> (_ Modell: Modell, in tableName: Zeichenfolge, Coder: Coder, writeOptions: FieldWriteOptions, Konfiguration: FetchConfiguration, Abschluss: @escaping (Ergebnis<Model, NowDataError> ))
Fügt das angegebene codierbare 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. Das von der Plattform [ ServiceNow generierte Ergebnis sys_Id wird im Ergebnismodell des Handlerscompletion zurückgegeben.
| Name | Typ | Beschreibung |
|---|---|---|
| Modell | SysIdentifiableModel | Modelldefinition der Felder, die in die Tabelle eingefügt werden sollen. |
| in tableName | Zeichenfolge | Name der Tabelle, in die die Datensätze geschrieben werden sollen, z. B. Incident. |
| Coder | Codierer | Optional. Codierer zum Codieren oder Decodieren von Daten, die an die Instanz ServiceNow gesendet und von ihr empfangen werden.Mögliche Werte:
Standard: .default |
| writeOptions | FeldSchreiboptionen | Optional. Konfigurationsoptionen, die auf die Daten angewendet werden sollen, die in den Datensatz geschrieben werden. Standard: null |
| konfigurieren | RufenKonfiguration ab | Optional. Konfiguration, die auf die abgerufenen Datensätze angewendet werden soll, einschließlich Filter, die die zurückzugebenden Datensätze, die Größenbeschränkung für Paginierungsseiten, die abzurufenden Felder und das, was in die Felder aufgenommen werden soll, definieren. 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 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 – erstellen<Model: SysIdentifiableModel> (Modell: Modell, in tableName: Zeichenfolge, Pfad: Zeichenfolge = Konstanten.Ergebnispfad, Codierer: Coder = .default, writeOptions: FieldWriteOptions? = Null, Konfiguration: FetchConfiguration = Null)
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 „receValue“ 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 Punkte getrennter Pfad für den geschachtelten Typ. Zum Beispiel „ result “ oder „foo.bar.baz“ für eine tiefere Verschachtelung.Standard: |
| Coder | Codierer | Optional. Codierer zum Codieren oder Decodieren von Daten, die an die Instanz ServiceNow gesendet und von ihr empfangen werden.Mögliche Werte:
Standard: .default |
| writeOptions | FeldSchreiboptionen | Optional. Konfigurationsoptionen, die auf die Daten angewendet werden sollen, die in den Datensatz geschrieben werden. Standard: null |
| konfigurieren | RufenKonfiguration ab | Optional. Konfiguration, die auf die abgerufenen Datensätze angewendet werden soll, einschließlich Filter, die die zurückzugebenden Datensätze, die Größenbeschränkung für Paginierungsseiten, die abzurufenden Felder und das, was in die Felder aufgenommen werden soll, definieren. 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 Tabelle „Benutzer“ [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(mit Feldern: [FieldName: FieldValue], in tableName: String, writeOptions: FieldWriteOptions? = nil, Configuration: FieldReadConfiguration? = nil) asynchrone Würfe
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_ normalerweise Systemparameter, die automatisch generiert werden und nicht aktualisiert werden können. Felder, die nicht angegeben und vom System nicht automatisch generiert werden, werden auf den Nullwert des zugehörigen Datentyps festgelegt.| 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 | FeldSchreiboptionen | Optional. Konfigurationsoptionen, die auf die Daten angewendet werden sollen, die in den Datensatz geschrieben werden. Standard: null |
| konfigurieren | RufenKonfiguration ab | Optional. Konfiguration, die auf die abgerufenen Datensätze angewendet werden soll, einschließlich Filter, die die zurückzugebenden Datensätze, die Größenbeschränkung für Paginierungsseiten, die abzurufenden Felder und das, was in die Felder aufgenommen werden soll, definieren. 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_ normalerweise Systemparameter, die automatisch generiert werden und nicht aktualisiert werden können. Felder, die nicht angegeben und vom System nicht automatisch generiert werden, werden auf den Nullwert des zugehörigen Datentyps festgelegt.| 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 | FeldSchreiboptionen | Optional. Konfigurationsoptionen, die auf die Daten angewendet werden sollen, die in den Datensatz geschrieben werden. Standard: null |
| konfigurieren | FieldReadConfiguration | Optional. Konfigurationsoptionen, die angeben, welche Felder zurückgegeben und was in die Felder aufgenommen werden soll. Standard: null |
| 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, Konfiguration: 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_ normalerweise Systemparameter, die automatisch generiert werden und nicht aktualisiert werden können. Felder, die nicht angegeben und vom System nicht automatisch generiert werden, werden auf den Nullwert des zugehörigen Datentyps festgelegt.| 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 | FeldSchreiboptionen | Optional. Konfigurationsoptionen, die auf die Daten angewendet werden sollen, die in den Datensatz geschrieben werden. Standard: null |
| konfigurieren | RufenKonfiguration ab | Optional. Konfiguration, die auf die abgerufenen Datensätze angewendet werden soll, einschließlich Filter, die die zurückzugebenden Datensätze, die Größenbeschränkung für Paginierungsseiten, die abzurufenden Felder und das, was in die Felder aufgenommen werden soll, definieren. Standard: nil – Alle zurückgegebenen Datensätze. |
| Typ | Beschreibung |
|---|---|
| Beliebiger Herausgeber<Data, NowDataError> | Erfolg: Datenobjekt, das den aktualisierten Datensatz enthält. Fehler: NowDataError
|
In diesem Beispiel wird gezeigt, wie Sie eine Funktion erstellen, 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) asynchrone Auslösungen
Löscht das angegebene codierbare 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. |
| von tableName | Zeichenfolge | Name der Tabelle, aus der die Informationen gelöscht werden sollen, z. B. Incident. |
| Typ | Beschreibung |
|---|---|
| Keine | Wenn die Methode erfolgreich ist, wird nichts zurückgegeben. |
| 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: Model, from tableName: Zeichenfolge, Abschluss: @escaping (Ergebnis<Void, NowDataError> ))
Löscht das angegebene codierbare Modell aus der angegebenen Tabelle und führt dann den entsprechenden completion -Handler 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. |
| von 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: Zeichenfolge)
Löscht das angegebene codierbare 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. |
| von tableName | Zeichenfolge | Name der Tabelle, aus der die Informationen gelöscht werden sollen, z. B. Incident. |
| Typ | Beschreibung |
|---|---|
| Beliebiger Herausgeber<Void, NowDataError> | Erfolg: Keine Rückgabe 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: asynchrone Ausnahmen für „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. |
| von tableName | Zeichenfolge | Name der Tabelle, aus der die Informationen gelöscht werden sollen, z. B. Incident. |
| Typ | Beschreibung |
|---|---|
| Keine | Wenn die Methode erfolgreich ist, wird nichts zurückgegeben. |
| 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, von tableName: Zeichenfolge, Abschluss: @escaping (Ergebnis<Void, NowDataError> ))
Löscht den angegebenen Datensatz aus der angegebenen Tabelle und führt dann das Objekt completion aus, nachdem der Datensatz gelöscht wurde.
| Name | Typ | Beschreibung |
|---|---|---|
| sysId | Zeichenfolge | Sys_id des zu löschenden Datensatzes. |
| von 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, von tableName: Zeichenfolge)
Löscht den angegebenen Datensatz aus der angegebenen Tabelle.
| Name | Typ | Beschreibung |
|---|---|---|
| sysId | Zeichenfolge | Sys_id des zu löschenden Datensatzes. |
| von tableName | Zeichenfolge | Name der Tabelle, aus der die Informationen gelöscht werden sollen, z. B. Incident. |
| Typ | Beschreibung |
|---|---|
| Beliebiger Herausgeber<Void, NowDataError> | Erfolg: Keine Rückgabe Fehler: NowDataError
|
In diesem Beispiel wird gezeigt, 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 | NowServiceKonfiguration | Konfigurationsparameter, die beim Erstellen des Service verwendet werden sollen. |
| coreServiceProvider | NowCoreServicebereitstellung | Optional. Service Provider, der dem NowTableService zugeordnet werden soll. Standard: null |
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 – Modell<Model: Decodable> (mit sysId: SysID? = nil, von tableName: Zeichenfolge, Pfad: Zeichenfolge = Konstanten.Ergebnispfad, Codierer: Coder = .default, Konfiguration: FetchConfiguration? = nil) asynchrone Würfe
Aktiviert den Abruf 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 (von tableName: Zeichenfolge, Konfiguration: FetchConfiguration? = nil) oder NowTableService: Paginator<Model: Decodable> (aus tableName: Zeichenfolge, Pfad: Zeichenfolge = Konstanten.Ergebnispfad, Codierer: Coder = .default, Konfiguration: FetchConfiguration? = Null), 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: null |
| von tableName | Zeichenfolge | Name der Tabelle, aus der die Datensätze abgerufen werden sollen, z. B. Incident. |
| path | Zeichenfolge | Durch Punkte getrennter Pfad für den geschachtelten Typ. Zum Beispiel „ result “ oder „foo.bar.baz“ für eine tiefere Verschachtelung.Standard: |
| Coder | Codierer | Optional. Codierer zum Codieren oder Decodieren von Daten, die an die Instanz ServiceNow gesendet und von ihr empfangen werden.Mögliche Werte:
Standard: .default |
| konfigurieren | RufenKonfiguration ab | Optional. Konfiguration, die auf die abgerufenen Datensätze angewendet werden soll, einschließlich Filter, die die zurückzugebenden Datensätze, die Größenbeschränkung für Paginierungsseiten, die abzurufenden Felder und das, was in die Felder aufgenommen werden soll, definieren. 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 decodierbares Modell nach sys_id abgerufen wird. Verwenden Sie einen einzelnen Modelltyp, z. B. User.self, anstelle von [User].self.
let result = try await service.model(User.self, with: "5137153cc611227c000bbd1bd8cd2005", from: "sys_user", path: "result")
NowTableService – Modell<Model: Decodable> (_ Typ: Modell.Typ, mit sysId: SysID? = null, aus tableName: Zeichenfolge, Pfad: Zeichenfolge = Konstanten.Ergebnispfad, Codierer: Coder = .default, Konfiguration: FetchConfiguration? = Null, 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 geschachtelten 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. |
| von tableName | Zeichenfolge | Name der Tabelle, aus der die Datensätze abgerufen werden sollen, z. B. Incident. |
| path | Zeichenfolge | Optional. Durch Punkte getrennter Pfad für den geschachtelten Typ. Zum Beispiel „ result “ oder „foo.bar.baz“ für eine tiefere Verschachtelung.Standard: |
| Coder | Codierer | Optional. Codierer zum Codieren oder Decodieren von Daten, die an die Instanz ServiceNow gesendet und von ihr empfangen werden.Standard: |
| konfigurieren | RufenKonfiguration ab | Optional. Konfiguration, die auf die abgerufenen Datensätze angewendet werden soll, einschließlich Filter, die die zurückzugebenden Datensätze, die Größenbeschränkung für Paginierungsseiten, die abzurufenden Felder und das, was in die Felder aufgenommen werden soll, definieren. 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 Abschluss-Handler:
|
| Typ | Beschreibung |
|---|---|
| Keine |
Ruft 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 – Modell<Model: Decodable> (mit sysId: SysID? = nil, von tableName: Zeichenfolge, Pfad: Zeichenfolge = Konstanten.Ergebnispfad, Codierer: Coder = .default, Konfiguration: FetchConfiguration? = nil)
Erstellt einen Herausgeber, der den Abruf 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 (von tableName: Zeichenfolge, Konfiguration: FetchConfiguration? = nil) oder NowTableService: Paginator<Model: Decodable> (aus tableName: Zeichenfolge, Pfad: Zeichenfolge = Konstanten.Ergebnispfad, Codierer: Coder = .default, Konfiguration: FetchConfiguration? = Null), 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: null |
| von tableName | Zeichenfolge | Name der Tabelle, aus der die Datensätze abgerufen werden sollen, z. B. Incident. |
| path | Zeichenfolge | Durch Punkte getrennter Pfad für den geschachtelten Typ. Zum Beispiel „ result “ oder „foo.bar.baz“ für eine tiefere Verschachtelung.Standard: |
| Coder | Codierer | Optional. Codierer zum Codieren oder Decodieren von Daten, die an die Instanz ServiceNow gesendet und von ihr empfangen werden.Mögliche Werte:
Standard: .default |
| konfigurieren | RufenKonfiguration ab | Optional. Konfiguration, die auf die abgerufenen Datensätze angewendet werden soll, einschließlich Filter, die die zurückzugebenden Datensätze, die Größenbeschränkung für Paginierungsseiten, die abzurufenden Felder und das, was in die Felder aufgenommen werden soll, definieren. Standard: nil – Alle zurückgegebenen Datensätze. |
| Typ | Beschreibung |
|---|---|
| Beliebiger Herausgeber<Model, NowDataError> | Erfolg: Herausgeber hat decodierbare Modelle zurückgegeben. 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 Modelltyp User.self anstelle von [User].self.
let publisher: AnyPublisher<User, NowDataError> = service.model(with: "5137153cc611227c000bbd1bd8cd2005", from: "sys_user", path: "result")
NowTableService – paginator (von tableName: Zeichenfolge, Konfiguration: FetchConfiguration? = nil)
Erstellt einen Paginator, der das Iterieren durch Seiten von 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 | RufenKonfiguration ab | Optional. Konfiguration, die auf die abgerufenen Datensätze angewendet werden soll, einschließlich Filter, die die zurückzugebenden Datensätze, die Größenbeschränkung für Paginierungsseiten, die abzurufenden Felder und das, was in die Felder aufgenommen werden soll, definieren. Standard: nil – Alle zurückgegebenen Datensätze. |
| Typ | Beschreibung |
|---|---|
| Paginator<Data> | Erfolg: Paginatorobjekt, das die angegebenen Datensätze enthält. 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 = Konstanten.Ergebnispfad, Codierer: Coder = .default, Konfiguration: FetchConfiguration? = Null)
Erstellt einen Paginator, der die Iteration von Seiten mit 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 |
|---|---|---|
| von tableName | Zeichenfolge | Name der Tabelle, aus der die Datensätze abgerufen werden sollen, z. B. Incident. |
| Pfad | Zeichenfolge | Durch Punkte getrennter Pfad für den geschachtelten Typ. Zum Beispiel „ result “ oder „result.user.photos“ für eine tiefere Verschachtelung. Durch Angabe eines anwenderdefinierten Pfads können geschachtelte Daten abgerufen oder durchlaufen werden.Standard: |
| Coder | Codierer | Optional. Codierer zum Codieren oder Decodieren von Daten, die an die Instanz ServiceNow gesendet und von ihr empfangen werden.Mögliche Werte:
Standard: .default |
| konfigurieren | RufenKonfiguration ab | Optional. Konfiguration, die auf die abgerufenen Datensätze angewendet werden soll, einschließlich Filter, die die zurückzugebenden Datensätze, die Größenbeschränkung für Paginierungsseiten, die abzurufenden Felder und das, was in die Felder aufgenommen werden soll, definieren. Standard: nil – Alle zurückgegebenen Datensätze. |
| Typ | Beschreibung |
|---|---|
| Paginator<Data> | Erfolg: Paginatorobjekt mit ausgelagerten decodierbaren Modellen.Fehler: NowDataError
|
In diesem Beispiel wird gezeigt, wie Sie ein Paginator-Objekt abrufen, das decodierte Anwendermodelle bereitstellt. Sie können das gewünschte Paginator-Objekt abrufen, indem Sie den Compiler auffordern, eine Sammlung von Anwendermodellen ([User]) zurückzugeben, und das Paginator-Objekt darüber informieren, dass die Anwender unter dem Ergebnispfad geschachtelt sind.
struct User: Codable {
var name: String
}
let service: NowTableService = ...
let paginator: Paginator<[User]> = service.paginator(from: "sys_user", path: "result")
NowTableService – Datensatz (mit sysId: SysID, von tableName: Zeichenfolge, Konfiguration: FieldReadConfiguration? = nil) asynchrone ausgelöst
Ruft einen angegebenen Datensatz aus der angegebenen Tabelle in einer Instanz ServiceNow 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. |
| von tableName | Zeichenfolge | Name der Tabelle, aus der die Datensätze abgerufen werden sollen, z. B. Incident. |
| konfigurieren | RufenKonfiguration ab | Optional. Konfiguration, die auf die abgerufenen Datensätze angewendet werden soll, einschließlich Filter, die die zurückzugebenden Datensätze, die Größenbeschränkung für Paginierungsseiten, die abzurufenden Felder und das, was in die Felder aufgenommen werden soll, definieren. 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 – Datensatz (mit sysId: SysID, von 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 bei großen Ergebnismengen die Funktion NowTableService – paginator (von tableName: Zeichenfolge, Konfiguration: FetchConfiguration? = nil), um paginierte Ergebnisse abzurufen.| Name | Typ | Beschreibung |
|---|---|---|
| sysId | Zeichenfolge | Sys_id des Datensatzes, der von der Instanz ServiceNow zurückgegeben werden soll. |
| von tableName | Zeichenfolge | Name der Tabelle, aus der die Datensätze abgerufen werden sollen, z. B. Incident. |
| konfigurieren | RufenKonfiguration ab | Optional. Konfiguration, die auf die abgerufenen Datensätze angewendet werden soll, einschließlich Filter, die die zurückzugebenden Datensätze, die Größenbeschränkung für Paginierungsseiten, die abzurufenden Felder und das, was in die Felder aufgenommen werden soll, definieren. 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 – Datensatz (mit sysId: SysID, von tableName: Zeichenfolge, Konfiguration: FieldReadConfiguration? = nil)
Erstellt einen Herausgeber, um einen angegebenen Datensatz aus der angegebenen Tabelle in einer Instanz ServiceNow 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. |
| von tableName | Zeichenfolge | Name der Tabelle, aus der die Datensätze abgerufen werden sollen, z. B. Incident. |
| konfigurieren | RufenKonfiguration ab | Optional. Konfiguration, die auf die abgerufenen Datensätze angewendet werden soll, einschließlich Filter, die die zurückzugebenden Datensätze, die Größenbeschränkung für Paginierungsseiten, die abzurufenden Felder und das, was in die Felder aufgenommen werden soll, definieren. Standard: nil – Alle zurückgegebenen Datensätze. |
| Typ | Beschreibung |
|---|---|
| Beliebiger Herausgeber<Data, NowDataError> | Erfolg: Datenobjekt, das die angegebenen Datensätze enthält. Fehler: NowDataError
|
In diesem Beispiel wird gezeigt, wie eine Funktion erstellt wird, die den angegebenen Datensatz mit den angegebenen Feldern aus der angegebenen Tabelle 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 – Datensätze (aus tableName: Zeichenfolge, Konfiguration: FetchConfiguration? = nil) asynchrone Würfe
Ruft Datensätze aus der angegebenen Tabelle ab.
let dataPublisher: AnyPublisher<Data, NowDataError> = ...
let recordsPublisher: AnyPublisher<[NowRecord], NowDataError> = myPublisher.convertToRecords() Verwenden Sie bei großen Ergebnismengen die Funktion NowTableService – paginator (von tableName: Zeichenfolge, Konfiguration: FetchConfiguration? = nil), um paginierte Ergebnisse abzurufen.| Name | Typ | Beschreibung |
|---|---|---|
| von tableName | Zeichenfolge | Name der Tabelle, aus der die Datensätze abgerufen werden sollen, z. B. Incident. |
| konfigurieren | RufenKonfiguration ab | Optional. Konfiguration, die auf die abgerufenen Datensätze angewendet werden soll, einschließlich Filter, die die zurückzugebenden Datensätze, die Größenbeschränkung für Paginierungsseiten, die abzurufenden Felder und das, was in die Felder aufgenommen werden soll, definieren. 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 – Datensätze (von tableName: Zeichenfolge, 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 bei großen Ergebnismengen die Funktion NowTableService – paginator (von tableName: Zeichenfolge, Konfiguration: 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 | RufenKonfiguration ab | Optional. Konfiguration, die auf die abgerufenen Datensätze angewendet werden soll, einschließlich Filter, die die zurückzugebenden Datensätze, die Größenbeschränkung für Paginierungsseiten, die abzurufenden Felder und das, was in die Felder aufgenommen werden soll, definieren. 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 – Datensätze (von tableName: Zeichenfolge, Konfiguration: 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 bei großen Ergebnismengen die Funktion NowTableService – paginator (von tableName: Zeichenfolge, Konfiguration: FetchConfiguration? = nil), um paginierte Ergebnisse abzurufen.| Name | Typ | Beschreibung |
|---|---|---|
| von tableName | Zeichenfolge | Name der Tabelle, aus der die Datensätze abgerufen werden sollen, z. B. Incident. |
| konfigurieren | RufenKonfiguration ab | Optional. Konfiguration, die auf die abgerufenen Datensätze angewendet werden soll, einschließlich Filter, die die zurückzugebenden Datensätze, die Größenbeschränkung für Paginierungsseiten, die abzurufenden Felder und das, was in die Felder aufgenommen werden soll, definieren. Standard: nil – Alle zurückgegebenen Datensätze. |
| Typ | Beschreibung |
|---|---|
| Beliebiger Herausgeber<Data, NowDataError> | Erfolg: Datenobjekt, das die angegebenen Datensätze enthält. Fehler: NowDataError
|
In diesem Beispiel wird gezeigt, wie Sie eine Funktion erstellen, die mehrere Datensätze aus einer angegebenen Tabelle abruft. Erstellt ein Objekt, 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? = null, Konfiguration: FetchConfiguration? = null) asynchrone Würfe
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. |
| Coder | Codierer | Optional. Codierer zum Codieren oder Decodieren von Daten, die an die Instanz ServiceNow gesendet und von ihr empfangen werden.Mögliche Werte:
Standard: .default |
| writeOptions | FeldSchreiboptionen | Optional. Konfigurationsoptionen, die auf die Daten angewendet werden sollen, die in den Datensatz geschrieben werden. Standard: null |
| konfigurieren | RufenKonfiguration ab | Optional. Konfiguration, die auf die abgerufenen Datensätze angewendet werden soll, einschließlich Filter, die die zurückzugebenden Datensätze, die Größenbeschränkung für Paginierungsseiten, die abzurufenden Felder und das, was in die Felder aufgenommen werden soll, definieren. 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, Coder: Coder = .default, writeOptions: FieldWriteOptions? = null, Konfiguration: FetchConfiguration? = null, Abschluss: @escaping (Ergebnis<Model, NowDataError> ))
Aktualisiert das angegebene codierbare 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. |
| Coder | Codierer | Optional. Codierer zum Codieren oder Decodieren von Daten, die an die Instanz ServiceNow gesendet und von ihr empfangen werden.Mögliche Werte:
Standard: .default |
| writeOptions | FeldSchreiboptionen | Optional. Konfigurationsoptionen, die auf die Daten angewendet werden sollen, die in den Datensatz geschrieben werden. Standard: null |
| konfigurieren | RufenKonfiguration ab | Optional. Konfiguration, die auf die abgerufenen Datensätze angewendet werden soll, einschließlich Filter, die die zurückzugebenden Datensätze, die Größenbeschränkung für Paginierungsseiten, die abzurufenden Felder und das, was in die Felder aufgenommen werden soll, definieren. 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: Modell, in tableName: Zeichenfolge, Coder: Coder = .default, writeOptions: FieldWriteOptions? = null, Konfiguration: FetchConfiguration? = null)
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. |
| Coder | Codierer | Optional. Codierer zum Codieren oder Decodieren von Daten, die an die Instanz ServiceNow gesendet und von ihr empfangen werden.Mögliche Werte:
Standard: .default |
| writeOptions | FeldSchreiboptionen | Optional. Konfigurationsoptionen, die auf die Daten angewendet werden sollen, die in den Datensatz geschrieben werden. Standard: null |
| konfigurieren | RufenKonfiguration ab | Optional. Konfiguration, die auf die abgerufenen Datensätze angewendet werden soll, einschließlich Filter, die die zurückzugebenden Datensätze, die Größenbeschränkung für Paginierungsseiten, die abzurufenden Felder und das, was in die Felder aufgenommen werden soll, definieren. 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) asynchrone Würfe
Aktualisiert den angegebenen Datensatz mit den angegebenen Feldern.
let dataPublisher: AnyPublisher<Data, NowDataError> = ...
let recordsPublisher: AnyPublisher<[NowRecord], NowDataError> = myPublisher.convertToRecords()sys_ normalerweise Systemparameter, die automatisch generiert werden und nicht aktualisiert werden können. Felder, die nicht angegeben und vom System nicht automatisch generiert werden, werden auf den Nullwert des zugehörigen Datentyps festgelegt.| 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 | FeldSchreiboptionen | Optional. Konfigurationsoptionen, die auf die Daten angewendet werden sollen, die in den Datensatz geschrieben werden. Standard: null |
| konfigurieren | RufenKonfiguration ab | Optional. Konfiguration, die auf die abgerufenen Datensätze angewendet werden soll, einschließlich Filter, die die zurückzugebenden Datensätze, die Größenbeschränkung für Paginierungsseiten, die abzurufenden Felder und das, was in die Felder aufgenommen werden soll, definieren. 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: Zeichenfolge, mit Feldern: [FieldName: FieldValue], writeOptions: FieldWriteOptions? = nil, Konfiguration: FieldReadConfiguration? = nil, Abschluss: @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_ normalerweise Systemparameter, die automatisch generiert werden und nicht aktualisiert werden können. Felder, die nicht angegeben und vom System nicht automatisch generiert werden, werden auf den Nullwert des zugehörigen Datentyps festgelegt.| 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 | FeldSchreiboptionen | Optional. Konfigurationsoptionen, die auf die Daten angewendet werden sollen, die in den Datensatz geschrieben werden. Standard: null |
| konfigurieren | RufenKonfiguration ab | Optional. Konfiguration, die auf die abgerufenen Datensätze angewendet werden soll, einschließlich Filter, die die zurückzugebenden Datensätze, die Größenbeschränkung für Paginierungsseiten, die abzurufenden Felder und das, was in die Felder aufgenommen werden soll, definieren. 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: Zeichenfolge, mit Feldern: [FieldName: FieldValue], writeOptions: FieldWriteOptions? = nil, Konfiguration: FieldReadConfiguration? = nil)
Aktualisiert den angegebenen Datensatz mit den angegebenen Feldern.
let dataPublisher: AnyPublisher<Data, NowDataError> = ...
let recordsPublisher: AnyPublisher<[NowRecord], NowDataError> = myPublisher.convertToRecords()sys_ normalerweise Systemparameter, die automatisch generiert werden und nicht aktualisiert werden können. Felder, die nicht angegeben und vom System nicht automatisch generiert werden, werden auf den Nullwert des zugehörigen Datentyps festgelegt.| 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 | FeldSchreiboptionen | Optional. Konfigurationsoptionen, die auf die Daten angewendet werden sollen, die in den Datensatz geschrieben werden. Standard: null |
| konfigurieren | RufenKonfiguration ab | Optional. Konfiguration, die auf die abgerufenen Datensätze angewendet werden soll, einschließlich Filter, die die zurückzugebenden Datensätze, die Größenbeschränkung für Paginierungsseiten, die abzurufenden Felder und das, was in die Felder aufgenommen werden soll, definieren. Standard: nil – Alle zurückgegebenen Datensätze. |
| Typ | Beschreibung |
|---|---|
| Beliebiger Herausgeber<Data, NowDataError> | Erfolg: Datenobjekt, das den aktualisierten Datensatz enthält. Fehler: NowDataError
|
In diesem Beispiel wird gezeigt, wie Sie eine Funktion erstellen, 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)