Interagieren Sie mit Tabellendaten in einem ServiceNow Instanz

  • Freigeben Version: Zurich
  • Aktualisiert 31. Juli 2025
  • 3 Minuten Lesedauer
  • Die Mobile SDK Ermöglicht Ihnen die Interaktion mit Daten in Tabellen, die sich auf befinden ServiceNow Instanz. Sie können mit diesen Daten über interagieren ServiceNow REST Tabelle API mit NowTableService() API, die die REST-Schnittstelle direkt oder über aufruft NowGraphQLService() API, die eine angegebene GraphQL-Abfrage für den REST ausführt GraphQL API.

    Wenn Sie Daten aus mehreren Tabellen innerhalb eines einzigen Anrufs zurückgeben möchten, müssen Sie verwenden NowGraphQLService() API. Wenn Sie mit anderen interagieren müssen ServiceNow REST APIs, siehe Interagieren Sie mit der öffentlichen REST-API auf einem ServiceNow Instanz.

    Mit NowGraphQLService interagieren ServiceNow Tabellen

    Die NowGraphQLService Die Klasse bietet Methoden, mit denen Sie GraphQL-Abfragen für eine angegebene Tabelle in erstellen und ausführen können ServiceNow Instanz, wenn der angemeldete Anwender über die richtige Autorisierung 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 Abschlusshandlers:
    func execute(_ query: GraphQLQuery, completion: @escaping (Result<Data, NowDataError>) → Void)
    Durch asynchrone/warten:
    func execute(_ query: GraphQLQuery) async throws -> Data
    Oder, A Kombinieren Herausgeber (der 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 verwenden können ServiceNow Instanz.
    // 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
        }
      }
    }
    Dieses Beispiel zeigt, wie Sie eine asynchrone Funktion erstellen, 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
            }
          }
        }
      }
    }
    """

    Verwenden von NowTableService zur Interaktion mit ServiceNow Tabellen

    Die NowTableService Die Klasse bietet Methoden zum Ausführen von CRUD-Vorgängen für die Datensätze in Tabellen, die sich auf befinden ServiceNow Instanz. Über diese Schnittstelle können Sie direkt auf einen der Datensätze in einem zugreifen ServiceNow Tabelle, für die der angemeldete Anwender berechtigt ist. NowTableService Unterstützt Dot-Walking für Referenzfelder. Wenn eine Tabelle beispielsweise einen Verweis auf die Anwendertabelle enthält, der Dot-Walking-Wert user.name Gibt den Namen des Anwenders zurück.

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

    Am Meisten NowTableService Methoden bieten drei Implementierungen für die Rückgabe von Ergebnisdaten. Eines, das asynchron/warten verwendet, eines, das einen Abschlusshandler mit einem aufruft ResultUnd eine Aufzählung, die einen zurückgibt Kombinieren Herausgeber, der derzeit veraltet ist.

    Beispiel: Alle CreateRecord() Methoden fügen einen erstellten Datensatz in eine angegebene Tabelle ein, jedoch die

    NowTableService – createRecord(mit Feldern: [Fieldname: FieldValue], in tableName: Zeichenfolge, writeOptions: FieldWriteOptions, Konfiguration: FieldReadConfiguration, Abschluss: @Escaping (Ergebnis<Daten, NowDataError>)

    Methode ruft einen Abschlusshandler mit auf ResultAufzählung (die .Erfolg Fall enthält die Ergebnisse als zugehörigen Wert).

    Die zugehörigen Listen namens

    NowTableService – createRecord(mit Feldern: [Fieldname: FieldValue], in tableName: Zeichenfolge, writeOptions: FieldWriteOptions? = Nil, Konfiguration: FieldReadConfiguration? = Nil) asynchrone Auswürfe

    Die Methode führt eine asynchrone/warten-Funktion aus. Während

    NowTableService – createRecord(mit Feldern: [Fieldname: FieldValue], in tableName: Zeichenfolge, writeOptions: FieldWriteOptions? = Nil, Konfiguration: FieldReadConfiguration? = Null)

    Methode gibt einen Combine-Herausgeber zurück, ist jedoch derzeit veraltet.

    Darüber hinaus NowTableService Stellt zwei verschiedene Implementierungen von CRUD-Methoden bereit, eine, die Rohdaten zurückgibt, und eine, die codierbare Modelle zurückgibt. Beispiel: Beide Aktualisieren () Und UpdateRecord() Methoden aktualisieren einen angegebenen Datensatz in einer angegebenen Tabelle, aber die Aktualisieren () Methoden geben ein codierbares Modell und zurück UpdateRecord() Methoden geben Rohdaten zurück. In einigen Fällen sind codierbare Methoden vorzuziehen, da eine stark typisierte codierbare Struktur mehr Flexibilität bietet als eine Sammlung von Rohdatenfeldern.

    Das folgende Beispiel zeigt, wie importiert wird Now-Daten Framework und initialisieren Sie dann ein NowTableService-Objekt, mit dem Sie dann interagieren können ServiceNow Instanztabellen.
    // 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)")
      }
    }

    Für zusätzliche Codebeispiele mit verfügbar NowTableService -Methoden finden Sie unter NowTableService-Klasse: IOS API-Dokumentation.