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 interagieren müssen ServiceNow Andere REST-APIs als Tabelle API, 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.

    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.
    /**
     * Helper class used to handle different Now service instances.
     */
    @Singleton
    class SdkManager @Inject constructor() {
    
        private var nowGraphQLService: NowGraphQLService? = null
    
        /**
         * Create the NowGraphQLService once in the lifetime of the application inside the Application class or another manager class
         * that will be injected into other classes via dagger/hilt.
         * NowGraphQLService should be created after initializing the NowSDK
         */
        suspend fun getNowGraphQLService(): NowGraphQLService? {
            if (nowGraphQLService != null) return nowGraphQLService
    
            return NowDataSDK.makeGraphQLService(URL("https://instance-name.service-now.com")).getOrThrow()
                .also { this.nowGraphQLService = it }
        }
    }
    Dieses Beispiel zeigt, wie veröffentlichte KB-Artikel mithilfe einer GraphQL-Abfrage abgerufen werden.
    suspend fun loadList() = withContext(Dispatchers.IO) {
        val kbArticlesQuery = """
        { 
            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 }
                    }
                }
            }
         }
     """
        val graphQLService = sdkManager.getNowGraphQLService()
    
        //graphQLService?.graphQLRequest(kbArticlesQuery)?.execute() can also be used
        graphQLService?.graphQLRequest(kbArticlesQuery)?.enqueue(
            { response ->
                response.body?.let {
                    val resultString = String(it)
                }
    
            }, { nowDataError ->
                //handle error
            })
    }

    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.

    Das folgende Beispiel zeigt, wie importiert wird Now-Daten Framework und initialisieren Sie dann ein NowTableServce-Objekt, mit dem Sie dann interagieren können ServiceNow Instanztabellen.
    /**
     * Helper class used to handle different Now service instances. It has an application scope or is Singleton
     */
    @Singleton
    class SdkManager @Inject constructor() {
    
        private var nowTableService: NowTableService? = null
    
        /**
         * Create the NowTableService once in the lifetime of the application inside the Application class or another manager class
         * that will be injected into other classes via dagger/hilt.
         * NowTableService should be created after initializing the NowSDK
         */
        suspend fun getNowTableService(): NowTableService? {
            if (nowTableService != null) return nowTableService
    
            return NowDataSDK.makeTableService(URL("https://instance-name.service-now.com")).getOrThrow()
                .also { this.nowTableService = it }
        }
     }    
    
    
    suspend fun loadCases() = withContext(Dispatchers.IO) {
        val tableService = sdkManager.getNowTableService()
    
        //configure what data to pass back
        val fetchConfiguration =  FetchConfiguration(Filter("active=true"), 10)
    
        val response = runCatching {
            tableService?.records(
                "sn_customerservice_case",
                fetchConfiguration
            )?.execute()
        }
    
        if (response.isSuccess) {
            val resultString = response.getOrNull()?.body?.let { String(it) }
        } else {
            //handle unsuccessful result
        }
    }

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