---
sourceDocument: オーストラリア API リファレンス
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/ja-JP/api-reference

 Release :

    - australia

ft:locale :

    - ja-JP

ft:publication_title :

    - オーストラリア API リファレンス

ft:clusterId :

    - crapiref

bundleId :

    - crapiref

workflow :

    - Creator


---

# ServiceNowインスタンス内のテーブルデータの操作

# ServiceNowインスタンス内のテーブルデータの操作 {#ariaid-title1}

* リリースバージョン: Australia
* 
* 更新日 2026年03月12日
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 所要時間：8分

Mobile SDKを使用すると、ServiceNow インスタンスに存在するテーブル内のデータを操作できます。このデータを操作するには、REST インターフェイスを直接呼び出す NowTableService() API を使用して ServiceNow REST テーブル API を使用するか、REST GraphQL API に対して指定された GraphQL クエリを実行する NowGraphQLService() API を使用します。
1 回の呼び出しで複数のテーブルからデータを返す場合は、 NowGraphQLService() API を使用する必要があります。他の ServiceNow REST API とやり取りする必要がある場合は、「 [ServiceNow インスタンスでのパブリック REST API とのやり取り](https://servicenow-prod.fluidtopics.net/eaiKaI4emwN85gIJtK2ilA "Mobile SDK は、iOS アプリケーションが ServiceNow インスタンスでパブリック REST API を呼び出せるようにする機能を提供します。")」を参照してください。

## NowGraphQLService を使用した ServiceNow テーブルとのやり取り {#mobsdk-ios-interact_data_instance__section_kxm_wdf_hqb}

[NowGraphQLService](https://servicenow-prod.fluidtopics.net/SjHpxHXeFlHlpYZ3L96TpA#NowGraphQLServiceiOSAPI "NowGraphQLService クラスは、GraphQL REST API を介して ServiceNow インスタンス上のデータに対して GraphQL クエリーを使用して要求できるようにする関数を提供します。") クラスは、ログインしているユーザーに適切な権限がある場合に、ServiceNow インスタンス内の指定されたテーブルで GraphQL クエリを構築して実行できるようにするメソッドを提供します。すべての CRUD 操作は、GraphQL クエリ内で定義できます。  
NowGraphQLService は、補完ハンドラーを返すことでクエリ結果のフェッチをサポートします。

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

async / await経由:

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

または、 [Combine](https://developer.apple.com/documentation/combine) パブリッシャー (現在は非推奨) を使用します。

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

次の例は、NowData フレームワークをインポートし、 ServiceNow インスタンス内のテーブルを操作するために使用できる NowGraphQLService オブジェクトを初期化する方法を示しています。

    // 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
        }
      }
    }

この例では、最近公開された KB 記事をフェッチして公開する非同期関数を作成する方法を示します。

    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 を使用した ServiceNow テーブルの操作 {#mobsdk-ios-interact_data_instance__section_fgn_gy2_hqb}

[NowTableService](https://servicenow-prod.fluidtopics.net/XD4wjFuPLG8IbOwCT0Ue1Q#NowTableServiceiOSAPI "NowTableService クラスは、既存のServiceNowテーブルのレコードに対して作成、読み取り、更新、および削除の操作を実行できるようにする関数を提供します。") クラスは、ServiceNow インスタンスに存在するテーブル内のレコードに対して CRUD 操作を実行するメソッドを提供します。このインターフェイスを介して、ログインしているユーザーが許可されている ServiceNow テーブル内の任意のレコードに直接アクセスできます。NowTableService は、参照フィールドのドット連結をサポートしています。たとえば、テーブルにユーザーテーブルへの参照が含まれている場合、ドット連結された値 `user.name` はユーザーの名前を返します。

要求されたデータを返すと、該当するすべてのアクセス制御リスト (ACL) がデータに適用されるため、結果が予想よりも少なくなるか、認証されたユーザーが指定されたテーブルへのアクセス権を持っていない場合は認証エラーが発生する可能性があります。

ほとんどの NowTableService メソッドには、結果データを返すための 3 つの実装が用意されています。1 つは async/await を使用し、もう 1 つは Result 列挙を使用して完了ハンドラーを呼び出すもの、もう 1 つは現在非推奨の [Combine](https://developer.apple.com/documentation/combine) パブリッシャーを返すものです。

たとえば、すべての createRecord() メソッドは、構築されたレコードを指定されたテーブルに挿入しますが、

[NowTableService - createRecord (フィールド:[FieldName: FieldValue]、tableName:文字列、writeOptions:FieldWriteOptions、構成:FieldReadConfiguration、completion:@escaping (Result<Data、NowDataError>)](XD4wjFuPLG8IbOwCT0Ue1Q#NTblServ-createRecord_S_O_O_O "指定されたテーブルに指定されたレコードを挿入し、レコードの保存後に completion ハンドラーを実行します。")

メソッドは、 Result 列挙を使用して補完ハンドラーを呼び出します ( `.success` ケースには、関連する値として結果が含まれます)。

-
[NowTableService - createRecord (フィールド: [FieldName: FieldValue], in tableName: String, writeOptions: FieldWriteOptions? = nil, configuration: FieldReadConfiguration? = nil) 非同期スロー](XD4wjFuPLG8IbOwCT0Ue1Q#NTblServ-createRecord-async_S_O_O "指定されたフィールドを含む指定されたテーブルにレコードを挿入します。")

メソッドは async/await 関数を実行します。一方、

[NowTableService - createRecord (フィールド: [FieldName: FieldValue]、tableName: String, writeOptions: FieldWriteOptions? = nil, configuration: FieldReadConfiguration? = nil)](XD4wjFuPLG8IbOwCT0Ue1Q#NTblServ-createRecord_S_O_O "指定されたフィールドを含む指定されたテーブルにレコードを挿入します。")`
`

メソッドは Combine パブリッシャーを返しますが、現在は非推奨です。

さらに、 NowTableService には CRUD メソッドの 2 つの異なる実装 (生データを返す実装と、Codable モデルを返す実装) が用意されています。たとえば、 update() メソッドと updateRecord() メソッドはどちらも、指定されたテーブルの指定されたレコードを更新しますが、 update() メソッドは Codable モデルを返し、 updateRecord() メソッドは生データを返します。厳密に型指定されたコード可能構造の方が、生データフィールドのコレクションよりも柔軟性が高いため、場合によっては、コード化可能な方法の方が望ましい場合があります。  
次の例は、 NowData フレームワークをインポートしてから、 ServiceNow インスタンステーブルの操作に使用できる NowTableService オブジェクトを初期化する方法を示しています。

    // 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)")
      }
    }

利用可能な NowTableService メソッドを使用したその他のコード例については、 [NowTableService クラス : iOS](https://servicenow-prod.fluidtopics.net/XD4wjFuPLG8IbOwCT0Ue1Q#NowTableServiceiOSAPI "NowTableService クラスは、既存のServiceNowテーブルのレコードに対して作成、読み取り、更新、および削除の操作を実行できるようにする関数を提供します。")` `API ドキュメントを参照してください。

