---
sourceDocument: Xanadu-API-Referenz
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/de-DE/xanadu/api-reference

 Release :

    - xanadu

ft:locale :

    - de-DE

ft:publication_title :

    - Xanadu-API-Referenz

ft:clusterId :

    - crapiref

bundleId :

    - crapiref

workflow :

    - Creator


---

# Interagieren Sie mit Tabellendaten in einer Instanz ServiceNow .

# Interagieren Sie mit Tabellendaten in einer Instanz ServiceNow . {#ariaid-title1}

* Freigeben Version: Xanadu
* 
* Aktualisiert 1. August 2024
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 4 Minuten Lesedauer

Mobile SDK ermöglicht Ihnen die Interaktion mit Daten in Tabellen, die sich in Ihrer Instanz von ServiceNow befinden. Sie können mit diesen Daten über die REST- Tabellen -API ServiceNow interagieren, indem Sie die NowTableService()- API verwenden, die die REST-Schnittstelle direkt aufruft, oder über die NowGraphQLService()- API, die eine angegebene GraphQL-Abfrage für die REST GraphQL- API ausführt.
Wenn Sie Daten aus mehreren Tabellen innerhalb eines einzigen Aufrufs zurückgeben möchten, müssen Sie die NowGraphQLService()- API verwenden. Wenn Sie mit anderen ServiceNow REST APIs interagieren müssen, lesen Sie [Interagieren Sie mit der öffentlichen REST-API in einer ServiceNow -Instanz](https://servicenow-prod.fluidtopics.net/4SXGhplY3591V1pZtnzQ1A "Mobile SDK bietet Funktionen, mit denen iOS-Anwendungen die öffentliche REST API in einer Instanz ServiceNow aufrufen können.").

## NowGraphQLService für die Interaktion mit Tabellen ServiceNow verwenden {#mobsdk-ios-interact_data_instance__section_kxm_wdf_hqb}

Die Klasse [NowGraphQLService](https://servicenow-prod.fluidtopics.net/JaoEoaHfC8XWIchMJ2CdMA#NowGraphQLServiceiOSAPI "Die Klasse NowGraphQLService bietet Funktionen, mit denen Sie über die GraphQL- REST-API Anforderungen mithilfe von GraphQL-Abfragen für Daten in Ihrer Instanz ServiceNow stellen können.") stellt Methoden bereit, mit denen Sie GraphQL-Abfragen in einer angegebenen Tabelle in Ihrer Instanz ServiceNow erstellen und ausführen können, wenn der angemeldete Benutzer über die entsprechende Berechtigung verfügt. Sie können alle CRUD-Vorgänge in Ihrer GraphQL-Abfrage definieren.  
NowGraphQLService unterstützt das Abrufen von Ergebnissen für eine Abfrage durch Rückgabe eines Abschluss-Handlers:

    func execute(_ query: GraphQLQuery, completion: @escaping (Result<Data, NowDataError>) → Void)

Durch async/wait:

    func execute(_ query: GraphQLQuery) async throws -> Data

Oder ein (derzeit [veralteter](https://developer.apple.com/documentation/combine) ) Herausgeber (derzeit veraltet) ist:

    func publisher(for query: GraphQlQuery) → AnyPublisher<Data, NowDataError>

Das folgende Beispiel zeigt, wie Sie das NowData-Framework importieren und dann ein NowGraphQLService-Objekt initialisieren, das Sie dann für die Interaktion mit Tabellen in Ihrer Instanz ServiceNow verwenden können.

    // Import the NowData framework
    import NowData

    // Initialize a NowGraphQLService
    // The makeGraphQLService completion handler returns a result that wraps 
    // the NowGraphQLService upon success or error. 

    private func initializeGraphQLService(instanceUrl: URL) {
      makeGraphQLService(instanceUrl: instanceUrl) { [weak self] result in
        switch result {
        case .success(let service):
          self?.graphQLService = service
        case .failure(let error):
          debugPrint("Creating GraphQL service failed with error: \(error.localizedDescription)")
          self?.graphQLService = nil
        }
      }
    }

In diesem Beispiel wird gezeigt, wie eine asynchrone Funktion erstellt wird, die die zuletzt veröffentlichten KB-Artikel abruft und veröffentlicht.

    private func fetchArticles() async throws -> [Article] { 
        guard let graphQLService = graphQLService else { 
            throw ArticleListError.invalidGraphQLService 
        }         

        do {
            let data = try await graphQLService.execute(GraphQLQuery(query: recentlyPublishedQuery))
            let articles = try dataToArticleList(data)
        } catch let error as NowDataError {
            throw ArticleListError.fetchError(error)
        } catch {
            throw error
        }
    } 
      
    private let recentlyPublishedQuery = 
    """ 

    {
      GlideRecord_Query {
        kb_knowledge(queryConditions: "active=true^ORDERBYpublishedDESC" pagination: { limit: 10, offset: 0 }) {
          _results { 
            sys_id {
              value
            },
            number {
              displayValue
            },
            short_description {
              displayValue
            },
            author {
              displayValue
            }
            published {
              displayValue
            }
          }
        }
      }
    }
    """

## NowTableService für die Interaktion mit Tabellen ServiceNow verwenden {#mobsdk-ios-interact_data_instance__section_fgn_gy2_hqb}

Die [NowTableService](https://servicenow-prod.fluidtopics.net/tI9E8aDOZuwNtu1PH14CtA#NowTableServiceiOSAPI "Die Klasse NowTableService bietet Funktionen zum Ausführen von Erstellungs-, Lese-, Aktualisierungs- und Löschvorgängen für Datensätze vorhandener Tabellen ServiceNow.") -Klasse stellt Methoden zum Ausführen von CRUD-Vorgängen für die Datensätze in Tabellen bereit, die sich in Ihrer Instanz ServiceNow befinden. Über diese Schnittstelle können Sie direkt auf die Datensätze in der Tabelle ServiceNow zugreifen, für die der angemeldete Benutzer berechtigt ist. NowTableService unterstützt Dot-Walking für Referenzfelder. Wenn beispielsweise eine Tabelle einen Verweis auf die Benutzertabelle enthält, gibt der Dot-Walking-Wert `user.name` den Namen des Benutzers zurück.

Bei der Rückgabe der angeforderten Daten werden alle zutreffenden Zugriffssteuerungslisten (ACLs) auf die Daten angewendet. Dies kann zu weniger Ergebnissen als erwartet oder zu Autorisierungsfehlern führen, wenn der authentifizierte Benutzer keine Zugriffsrechte für die angegebene Tabelle hat.

Die meisten NowTableService- Methoden bieten drei Implementierungen für die Rückgabe von Ergebnisdaten. Eine davon verwendet async/wait, eine andere ruft einen Abschlusshandler mit der Aufzählung Result auf, und eine andere gibt einen derzeit veralteten [Kombinieren-](https://developer.apple.com/documentation/combine) Herausgeber zurück.

Beispielsweise fügen alle createRecord()- Methoden einen erstellten Datensatz in eine angegebene Tabelle ein, jedoch die

[NowTableService - createRecord(mit Feldern: [FieldName: FieldValue], in tableName: String, writeOptions: FieldWriteOptions, Konfiguration: FieldReadConfiguration, Abschluss: @escaping (Ergebnis<Data, NowDataError> )](tI9E8aDOZuwNtu1PH14CtA#NTblServ-createRecord_S_O_O_O "Fügt den angegebenen Datensatz in die angegebene Tabelle ein und führt dann den Handler completion aus, nachdem der Datensatz gespeichert wurde.")

Die Methode ruft einen Abschluss-Handler mit einer Aufzählung Result auf (der `.success-` Fall enthält die Ergebnisse als zugehörigen Wert).

Die zugehörigen Listen namens
[NowTableService -- createRecord(mit Feldern: [FieldName: FieldValue], in tableName: String, writeOptions: FieldWriteOptions? = nil, Configuration: FieldReadConfiguration? = nil) asynchrone Würfe](tI9E8aDOZuwNtu1PH14CtA#NTblServ-createRecord-async_S_O_O "Fügt einen Datensatz in die angegebene Tabelle ein, die die angegebenen Felder enthält.")

Die Methode führt eine asynchrone Wartefunktion aus. Während

[NowTableService -- createRecord(mit Feldern: [FieldName: FieldValue], in tableName: String, writeOptions: FieldWriteOptions? = nil, Konfiguration: FieldReadConfiguration? = nil)](tI9E8aDOZuwNtu1PH14CtA#NTblServ-createRecord_S_O_O "Fügt einen Datensatz in die angegebene Tabelle ein, die die angegebenen Felder enthält.")`
`

Die Methode gibt einen Herausgeber vom Typ „Kombinieren" zurück, ist jedoch derzeit veraltet.

Darüber hinaus bietet NowTableService zwei verschiedene Implementierungen von CRUD-Methoden -- eine, die Rohdaten zurückgibt, und eine, die codierbare Modelle zurückgibt. Beispielsweise aktualisieren die Methoden update () und updateRecord() einen angegebenen Datensatz in einer angegebenen Tabelle, die update()- Methoden geben jedoch ein codierbares Modell zurück, und die updateRecord()- Methoden geben Rohdaten zurück. In einigen Fällen sind codierbare Methoden möglicherweise zu bevorzugen, da eine stark typisierte codierbare Struktur mehr Flexibilität bietet als eine Sammlung von Rohdatenfeldern.  
Das folgende Beispiel zeigt, wie Sie das NowData- Framework importieren und dann ein NowTableService-Objekt initialisieren, das Sie dann für die Interaktion mit ServiceNow -Instanztabellen verwenden können.

    // Import the NowData framework
    import NowData

    // Initialize a NowTableService
    // The makeTableService completion handler returns a result that wraps 
    // the NowTableService upon success or error. 

    makeTableService(instanceUrl: instanceUrl) { [weak self] result in
      guard let self = self else { return }
      
      switch result {
      case .success(let tableService):
        debugPrint("Successfully created a table service \(tableService)")
        self.tableService = tableService
      case .failure(let error):
        debugPrint("Creating table service failed with error: \(error.localizedDescription)")
      }
    }

Zusätzliche Codebeispiele für die Verwendung der verfügbaren NowTableService- Methoden finden Sie in der API-Dokumentation [NowTableService-Klasse -- iOS](https://servicenow-prod.fluidtopics.net/tI9E8aDOZuwNtu1PH14CtA#NowTableServiceiOSAPI "Die Klasse NowTableService bietet Funktionen zum Ausführen von Erstellungs-, Lese-, Aktualisierungs- und Löschvorgängen für Datensätze vorhandener Tabellen ServiceNow.")` `.

