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


---

# NowTableService クラス : iOS

# NowTableService クラス : iOS {#ariaid-title1}

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

NowTableService クラスは、既存のServiceNowテーブルのレコードに対して作成、読み取り、更新、および削除の操作を実行できるようにする関数を提供します。
{#NowTableServiceiOSAPI__table_vx2_klw_5pb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| 構成 | [NowServiceConfiguration](https://servicenow-prod.fluidtopics.net/uTGNTZYlh7StSnwaCDzTxQ#NowServiceConfigurationiOSStruct "NowServiceConfiguration 構造体は、フィーチャ サービスの構成情報を定義します。") | サービスの初期化時に提供された構成設定。 |
[表 : 1. プロパティ]

{#NowTableServiceiOSAPI__table_vx2_klw_5pb}

## NowTableService - create\<Model: SysIdentifiableModel\>(_ model: Model, in tableName: String, coder: Coder, writeOptions: FieldWriteOptions, configuration: FetchConfiguration) 非同期スロー {#ariaid-title2}

指定されたコード可能モデルを指定されたテーブルに挿入します。
モデル別に新しいレコードを作成するには、モデルが `SysIdentifiableModel` プロトコルに準拠している必要があります。通常、各テーブルには独自のモデルがあります。

sysIdはServiceNowプラットフォームによって生成されるため、モデルのsys_Idパラメーターは作成時に無視されます。プラットフォームで生成されたServiceNowsys_Idは、completionハンドラー`の結果モデルに`返されます。
{#NTblServ-create-async_S_S_S_O_O__table_tqk_gsk_spb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| モデル | SysIdentififiableModel | テーブルに挿入するフィールドのモデル定義。 |
| テーブル名内 | 文字列 | インシデントなど、レコードを書き込むテーブルの名前。 |
| コーダー | コーダー | オプション。ServiceNowインスタンスとの間で送受信されるデータをエンコードまたはデコードするために使用する`コーダー`。 可能な値： * default: デフォルトのエンコーダーは、デバイスの`ロケール`と`タイムゾーン`を使用して、`yyy-MM-dd HH:mm:ss` 形式を使用して日付を書式設定します。 * custom(JSONEncoder, JSONDecoder): `カスタム`コーダーを使用して、JSON のデコード/エンコードをよりきめ細かく制御します。 この列挙型は、特別な日付形式、タイムゾーン、ロケールを使用する場合など、独自の `JSONEncoder` と `JSONDecoder` を指定する場合にのみ使用してください。 let myEncoder = JSONEncoder() myEncoder.dateFormat = ... let myDecoder = JSONDecoder() myDecoder.dateFormat = ... let coder: Coder = .custom(myEncoder, myDecoder) {#NTblServ-create-async_S_S_S_O_O__ul_nx3_wrd_sqb} デフォルト:.default |
| writeOptions | [フィールド書き込みオプション](https://servicenow-prod.fluidtopics.net/KmMVLQ3mjoIFoEG1pVxVPQ#FieldWriteOptionsiOSStruct "FieldWriteOptions クラスは、ServiceNowインスタンスのレコードのフィールドを更新または作成するためのオプションを設定する関数を提供します。") | オプション。レコードに書き込まれるデータに適用する構成オプション。 デフォルト:nil |
| 構成 | [FetchConfiguration](https://servicenow-prod.fluidtopics.net/PfnYOhpdQCRiXGASneYU2A#FetchConfigiOSStructure "FetchConfiguration 構造体は、ServiceNow インスタンスからレコードをフェッチするための構成を定義する機能を提供します。") | オプション。返されるレコードを定義するフィルター、ページネーションページサイズ制限、取得するフィールド、フィールドに含める内容など、取得したレコードに適用する構成。 デフォルト:nil - すべてのレコードが返されます。 |
[表 : 2. パラメーター]

{#NTblServ-create-async_S_S_S_O_O__table_tqk_gsk_spb} {#NTblServ-create-async_S_S_S_O_O__table_uqk_gsk_spb__entry__2}

| タイプ | 説明 |
|-|-|
| モデル | メソッドが成功した場合に返されます。sys_Idを含む、指定されたテーブルに挿入されたコード可能モデル。このsys_idを使用して、今後のメソッド呼び出しでこのレコードを参照します。 |
| Now データエラー | メソッドが失敗したときにスローされます。 * `アクセストークン (AccessTokenProviderError)` * AccessTokenProviderError:アクセストークンプロバイダーのエラーコードまたはメッセージ。 * アクセストークンの取得に失敗しました * userSessionError(_ error: Error) アクセストークンにエラーがある場合にスローされます。 * `attachmentValidation` 添付ファイルの検証に失敗したときにスローされます。 * `badResponse(statusCode:HTTPStatusCode)` * HTTPStatusCode:インスタンスから受信したステータスコード。 要求から予期しない応答が返されたときにスローされる * `cannotDecodeModel(DecodingError)` * DecodingError:デコードエラーが検出されました。 コード可能モデルを JSON からデコードできない場合にスローされます。 * `cannotDecodeProperty(type: Any, from: String)` * type:文字列からデコードするラップされた型。 * from:指定されたタイプにデコードする文字列。 文字列でラップされた値を JSON からデコードできない場合にスローされます。 * `cannotEncodeModel(EncodingError)` * EncodingError:エンコードエラーが検出されました。 コード可能モデルを JSON にエンコードできない場合にスローされます。 * `cannotParseResponse` インスタンスからの応答を想定される形式に解析できない場合にスローされます。 * `無効なURL` URL を形成できない場合にスローされます。たとえば、文字列に URL で無効な文字が含まれている場合や空の文字列である場合などです。 * `missingAttachmentMetadata` 添付ファイルのメタデータヘッダーがない場合にスローされます。 * `missingServiceConfiguration` 予期されたサービス構成がない場合にスローされます。 * `欠落している SysID` 予期されたsys_idパラメーターが欠落している場合にスローされます。 * `ネットワーク (NetworkServiceError)` * genericError(文字列) * operationCanceled * サービス無効 * serverError (エラー) * systemError (エラー) ネットワークサービスでエラーが発生したときにスローされます。 {#NTblServ-create-async_S_S_S_O_O__NowDataErroriOS-ul-enum} |
[表 : 3. 返される内容]

{#NTblServ-create-async_S_S_S_O_O__table_uqk_gsk_spb}  
次のコード例は、このメソッドを呼び出す方法を示しています。

    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 - create\<Model: SysIdentifiableModel\>(_ model: Model, in tableName: String, coder: Coder, writeOptions: FieldWriteOptions, configuration: FetchConfiguration, completion: @escaping (Result\<Model, NowDataError\>)) {#ariaid-title3}

指定された Codable モデルを指定されたテーブルに挿入し、 completion ハンドラーを実行します。
モデル別に新しいレコードを作成するには、モデルが `SysIdentifiableModel` プロトコルに準拠している必要があります。通常、各テーブルには独自のモデルがあります。例：

    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):
          ...
      }
    }

sysIdはServiceNowプラットフォームによって生成されるため、モデルのsys_Idパラメーターは作成時に無視されます。プラットフォームで生成されたServiceNowsys_Idは、completionハンドラー`の結果モデルに`返されます。
{#NTblServ-create_S_S_S_O_O_O__table_tqk_gsk_spb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| モデル | SysIdentififiableModel | テーブルに挿入するフィールドのモデル定義。 |
| テーブル名内 | 文字列 | インシデントなど、レコードを書き込むテーブルの名前。 |
| コーダー | コーダー | オプション。ServiceNowインスタンスとの間で送受信されるデータをエンコードまたはデコードするために使用する`コーダー`。 可能な値： * default: デフォルトのエンコーダーは、デバイスの`ロケール`と`タイムゾーン`を使用して、`yyy-MM-dd HH:mm:ss` 形式を使用して日付を書式設定します。 * custom(JSONEncoder, JSONDecoder): `カスタム`コーダーを使用して、JSON のデコード/エンコードをよりきめ細かく制御します。 この列挙型は、特別な日付形式、タイムゾーン、ロケールを使用する場合など、独自の `JSONEncoder` と `JSONDecoder` を指定する場合にのみ使用してください。 let myEncoder = JSONEncoder() myEncoder.dateFormat = ... let myDecoder = JSONDecoder() myDecoder.dateFormat = ... let coder: Coder = .custom(myEncoder, myDecoder) {#NTblServ-create_S_S_S_O_O_O__ul_nx3_wrd_sqb} デフォルト:.default |
| writeOptions | [フィールド書き込みオプション](https://servicenow-prod.fluidtopics.net/KmMVLQ3mjoIFoEG1pVxVPQ#FieldWriteOptionsiOSStruct "FieldWriteOptions クラスは、ServiceNowインスタンスのレコードのフィールドを更新または作成するためのオプションを設定する関数を提供します。") | オプション。レコードに書き込まれるデータに適用する構成オプション。 デフォルト:nil |
| 構成 | [FetchConfiguration](https://servicenow-prod.fluidtopics.net/PfnYOhpdQCRiXGASneYU2A#FetchConfigiOSStructure "FetchConfiguration 構造体は、ServiceNow インスタンスからレコードをフェッチするための構成を定義する機能を提供します。") | オプション。返されるレコードを定義するフィルター、ページネーションページサイズ制限、取得するフィールド、フィールドに含める内容など、取得したレコードに適用する構成。 デフォルト:nil - すべてのレコードが返されます。 |
| 完了 | @escaping (結果\<モデル、NowDataError\>) | 指定されたデコード可能モデルを作成した後に実行する補完ハンドラー。 補完ハンドラーの戻り値: * 成功:モデル:作成されたモデルタイプのデータ。 * 失敗:NowDataError * `アクセストークン (AccessTokenProviderError)` * AccessTokenProviderError:アクセストークンプロバイダーのエラーコードまたはメッセージ。 * アクセストークンの取得に失敗しました * userSessionError(_ error: Error) アクセストークンにエラーがある場合にスローされます。 * `attachmentValidation` 添付ファイルの検証に失敗したときにスローされます。 * `badResponse(statusCode:HTTPStatusCode)` * HTTPStatusCode:インスタンスから受信したステータスコード。 要求から予期しない応答が返されたときにスローされる * `cannotDecodeModel(DecodingError)` * DecodingError:デコードエラーが検出されました。 コード可能モデルを JSON からデコードできない場合にスローされます。 * `cannotDecodeProperty(type: Any, from: String)` * type:文字列からデコードするラップされた型。 * from:指定されたタイプにデコードする文字列。 文字列でラップされた値を JSON からデコードできない場合にスローされます。 * `cannotEncodeModel(EncodingError)` * EncodingError:エンコードエラーが検出されました。 コード可能モデルを JSON にエンコードできない場合にスローされます。 * `cannotParseResponse` インスタンスからの応答を想定される形式に解析できない場合にスローされます。 * `無効なURL` URL を形成できない場合にスローされます。たとえば、文字列に URL で無効な文字が含まれている場合や空の文字列である場合などです。 * `missingAttachmentMetadata` 添付ファイルのメタデータヘッダーがない場合にスローされます。 * `missingServiceConfiguration` 予期されたサービス構成がない場合にスローされます。 * `欠落している SysID` 予期されたsys_idパラメーターが欠落している場合にスローされます。 * `ネットワーク (NetworkServiceError)` * genericError(文字列) * operationCanceled * サービス無効 * serverError (エラー) * systemError (エラー) ネットワークサービスでエラーが発生したときにスローされます。 {#NTblServ-create_S_S_S_O_O_O__NowDataErroriOS-ul-enum} {#NTblServ-create_S_S_S_O_O_O__ul_dpx_jvk_spb} |
[表 : 4. パラメーター]

{#NTblServ-create_S_S_S_O_O_O__table_tqk_gsk_spb} {#NTblServ-create_S_S_S_O_O_O__table_uqk_gsk_spb__entry__2}

| タイプ | 説明 |
|-|-|
| なし |   |
[表 : 5. 返される内容]

{#NTblServ-create_S_S_S_O_O_O__table_uqk_gsk_spb}  
<br />

    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 - create\<Model: SysIdentifiableModel\>(model: Model, in tableName: String, path: String = Constants.resultPath, coder: Coder = .default, writeOptions: FieldWriteOptions? = nil, configuration: FetchConfiguration = nil) {#ariaid-title4}

指定されたテーブルに 1 つのコード可能モデルを挿入します。
注:  
このメソッドは廃止されました。代わりに、メソッドの async/await 実装を使用する必要があります。  
モデル別に新しいレコードを作成するには、モデルが `SysIdentifiableModel` プロトコルに準拠している必要があります。通常、各テーブルには独自のモデルがあります。例：

    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):
          ...
      }
    }

注:  
モデルの sys_Id パラメーターは作成時に無視されます。sysIdはServiceNowプラットフォームによってアサインされます。ServiceNowプラットフォームで生成されたsys_Idは、パブリッシャーの `receiveValue` コールバック モデルに返されます。
{#NTblServ-create_S_S_S_S_O_O__table_pnc_xkk_spb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| モデル | SysIdentififiableModel | テーブルに挿入する `SysIdentifiableModel` モデル。 |
| テーブル名内 | 文字列 | インシデントなど、レコードを書き込むテーブルの名前。 |
| path | 文字列 | オプション。ネストされたタイプのドット区切りパス。たとえば、より深いネストには `result` や `foo.bar.baz` を使用します。 デフォルト: `Constants.resultPath` |
| コーダー | コーダー | オプション。ServiceNowインスタンスとの間で送受信されるデータをエンコードまたはデコードするために使用する`コーダー`。 可能な値： * default: デフォルトのエンコーダーは、デバイスの`ロケール`と`タイムゾーン`を使用して、`yyy-MM-dd HH:mm:ss` 形式を使用して日付を書式設定します。 * custom(JSONEncoder, JSONDecoder): `カスタム`コーダーを使用して、JSON のデコード/エンコードをよりきめ細かく制御します。 この列挙型は、特別な日付形式、タイムゾーン、ロケールを使用する場合など、独自の `JSONEncoder` と `JSONDecoder` を指定する場合にのみ使用してください。 let myEncoder = JSONEncoder() myEncoder.dateFormat = ... let myDecoder = JSONDecoder() myDecoder.dateFormat = ... let coder: Coder = .custom(myEncoder, myDecoder) {#NTblServ-create_S_S_S_S_O_O__ul_nx3_wrd_sqb} デフォルト:.default |
| writeOptions | [フィールド書き込みオプション](https://servicenow-prod.fluidtopics.net/KmMVLQ3mjoIFoEG1pVxVPQ#FieldWriteOptionsiOSStruct "FieldWriteOptions クラスは、ServiceNowインスタンスのレコードのフィールドを更新または作成するためのオプションを設定する関数を提供します。") | オプション。レコードに書き込まれるデータに適用する構成オプション。 デフォルト:nil |
| 構成 | [FetchConfiguration](https://servicenow-prod.fluidtopics.net/PfnYOhpdQCRiXGASneYU2A#FetchConfigiOSStructure "FetchConfiguration 構造体は、ServiceNow インスタンスからレコードをフェッチするための構成を定義する機能を提供します。") | オプション。返されるレコードを定義するフィルター、ページネーションページサイズ制限、取得するフィールド、フィールドに含める内容など、取得したレコードに適用する構成。 デフォルト:nil - すべてのレコードが返されます。 |
[表 : 6. パラメーター]

{#NTblServ-create_S_S_S_S_O_O__table_pnc_xkk_spb} {#NTblServ-create_S_S_S_S_O_O__table_qnc_xkk_spb__entry__2}

| タイプ | 説明 |
|-|-|
| AnyPublisher\<Model、NowDataError\> | 成功: sys_Idを含む、指定されたテーブルに挿入されたコード可能モデル。このsys_idを使用して、今後のメソッド呼び出しでこのレコードを参照します。 失敗:NowDataError @escaping (結果\<モデル、NowDataError\>) |
[表 : 7. 返される内容]

{#NTblServ-create_S_S_S_S_O_O__table_qnc_xkk_spb}  
単一のレコードをユーザー \[sys_user\] テーブルに挿入する方法を示します。

    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 (フィールド: \[FieldName: FieldValue\], in tableName: String, writeOptions: FieldWriteOptions? = nil, configuration: FieldReadConfiguration? = nil) 非同期スロー {#ariaid-title5}

指定されたフィールドを含む指定されたテーブルにレコードを挿入します。
パブリッシャーは、カスタム [Codable モデル](https://developer.apple.com/documentation/foundation/archives_and_serialization/encoding_and_decoding_custom_types)にデコードできるデータを出力するか、 [NowTableService - paginator\<Model: Decodable\>(from tableName: String, path: String = Constants.resultPath, coder: Coder = .default, configuration: FetchConfiguration? = nil)](https://servicenow-prod.fluidtopics.net/XD4wjFuPLG8IbOwCT0Ue1Q#NTblServ-paginator_S_S_S_O "ネストを処理するデコードされたモデルのページの反復を可能にするページネーターを作成します。") 関数を使用することもできます。 または、コンビニエンス関数 convertToRecords() を使用して、データを NowRecord オブジェクトに変換することもできます。NowRecords を発行するようにパブリッシャーを変換する方法を次に示します。。

    let dataPublisher: AnyPublisher<Data, NowDataError> = ...
    let recordsPublisher: AnyPublisher<[NowRecord], NowDataError> = myPublisher.convertToRecords()

注:  
レコード内の一部のフィールドは、更新できない場合があります。たとえば、プリフィックスが `sys_` のフィールドは、通常、自動的に生成され、更新できないシステムパラメーターです。指定されておらず、システムによって自動生成されなかったフィールドは、関連付けられたデータタイプの null 値に設定されます。
{#NTblServ-createRecord-async_S_O_O__table_lww_l4j_ppb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| フィールドあり | \[フィールド名:フィールド値\] | レコードに含めるフィールドの名前と値のペア。 |
| テーブル名内 | 文字列 | インシデントなど、レコードを書き込むテーブルの名前。 |
| writeOptions | [フィールド書き込みオプション](https://servicenow-prod.fluidtopics.net/KmMVLQ3mjoIFoEG1pVxVPQ#FieldWriteOptionsiOSStruct "FieldWriteOptions クラスは、ServiceNowインスタンスのレコードのフィールドを更新または作成するためのオプションを設定する関数を提供します。") | オプション。レコードに書き込まれるデータに適用する構成オプション。 デフォルト:nil |
| 構成 | [FetchConfiguration](https://servicenow-prod.fluidtopics.net/PfnYOhpdQCRiXGASneYU2A#FetchConfigiOSStructure "FetchConfiguration 構造体は、ServiceNow インスタンスからレコードをフェッチするための構成を定義する機能を提供します。") | オプション。返されるレコードを定義するフィルター、ページネーションページサイズ制限、取得するフィールド、フィールドに含める内容など、取得したレコードに適用する構成。 デフォルト:nil - すべてのレコードが返されます。 |
[表 : 8. パラメーター]

{#NTblServ-createRecord-async_S_O_O__table_lww_l4j_ppb} {#NTblServ-createRecord-async_S_O_O__table_mww_l4j_ppb__entry__2}

| タイプ | 説明 |
|-|-|
| データ | メソッドが成功した場合に返されます。新しいレコードを含むデータオブジェクト。 |
| Now データエラー | メソッドが失敗したときにスローされます。 * `アクセストークン (AccessTokenProviderError)` * AccessTokenProviderError:アクセストークンプロバイダーのエラーコードまたはメッセージ。 * アクセストークンの取得に失敗しました * userSessionError(_ error: Error) アクセストークンにエラーがある場合にスローされます。 * `attachmentValidation` 添付ファイルの検証に失敗したときにスローされます。 * `badResponse(statusCode:HTTPStatusCode)` * HTTPStatusCode:インスタンスから受信したステータスコード。 要求から予期しない応答が返されたときにスローされる * `cannotDecodeModel(DecodingError)` * DecodingError:デコードエラーが検出されました。 コード可能モデルを JSON からデコードできない場合にスローされます。 * `cannotDecodeProperty(type: Any, from: String)` * type:文字列からデコードするラップされた型。 * from:指定されたタイプにデコードする文字列。 文字列でラップされた値を JSON からデコードできない場合にスローされます。 * `cannotEncodeModel(EncodingError)` * EncodingError:エンコードエラーが検出されました。 コード可能モデルを JSON にエンコードできない場合にスローされます。 * `cannotParseResponse` インスタンスからの応答を想定される形式に解析できない場合にスローされます。 * `無効なURL` URL を形成できない場合にスローされます。たとえば、文字列に URL で無効な文字が含まれている場合や空の文字列である場合などです。 * `missingAttachmentMetadata` 添付ファイルのメタデータヘッダーがない場合にスローされます。 * `missingServiceConfiguration` 予期されたサービス構成がない場合にスローされます。 * `欠落している SysID` 予期されたsys_idパラメーターが欠落している場合にスローされます。 * `ネットワーク (NetworkServiceError)` * genericError(文字列) * operationCanceled * サービス無効 * serverError (エラー) * systemError (エラー) ネットワークサービスでエラーが発生したときにスローされます。 {#NTblServ-createRecord-async_S_O_O__NowDataErroriOS-ul-enum} |
[表 : 9. 返される内容]

{#NTblServ-createRecord-async_S_O_O__table_mww_l4j_ppb}  
次のコード例は、このメソッドを呼び出す方法を示しています。

    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 (フィールド:\[FieldName: FieldValue\]、tableName:文字列、writeOptions:FieldWriteOptions、構成:FieldReadConfiguration、completion:@escaping (Result\<Data、NowDataError\>) {#ariaid-title6}

指定されたテーブルに指定されたレコードを挿入し、レコードの保存後に completion ハンドラーを実行します。
必要に応じて、返された結果をカスタム Codable モデルにデコードするか、代わりに [NowTableService - paginator\<Model: Decodable\>(from tableName: String, path: String = Constants.resultPath, coder: Coder = .default, configuration: FetchConfiguration? = nil)](https://servicenow-prod.fluidtopics.net/XD4wjFuPLG8IbOwCT0Ue1Q#NTblServ-paginator_S_S_S_O "ネストを処理するデコードされたモデルのページの反復を可能にするページネーターを作成します。") 関数を使用できます。 または、コンビニエンス関数 convertToRecords() を使用して、データを NowRecord オブジェクトに変換することもできます。NowRecords を発行するようにパブリッシャーを変換する方法を次に示します。

    let dataPublisher: AnyPublisher<Data, NowDataError> = ...
    let recordsPublisher: AnyPublisher<[NowRecord], NowDataError> = myResult.convertToRecords()

注:  
レコード内の一部のフィールドは、更新できない場合があります。たとえば、プリフィックスが `sys_` のフィールドは、通常、自動的に生成され、更新できないシステムパラメーターです。指定されておらず、システムによって自動生成されなかったフィールドは、関連付けられたデータタイプの null 値に設定されます。
{#NTblServ-createRecord_S_O_O_O__table_vk3_yqj_ppb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| フィールドあり | \[フィールド名:フィールド値\] | レコードに含めるフィールドの名前と値のペア。 |
| テーブル名内 | 文字列 | インシデントなど、レコードを書き込むテーブルの名前。 |
| writeOptions | [フィールド書き込みオプション](https://servicenow-prod.fluidtopics.net/KmMVLQ3mjoIFoEG1pVxVPQ#FieldWriteOptionsiOSStruct "FieldWriteOptions クラスは、ServiceNowインスタンスのレコードのフィールドを更新または作成するためのオプションを設定する関数を提供します。") | オプション。レコードに書き込まれるデータに適用する構成オプション。 デフォルト:nil |
| 構成 | [フィールド読み取り構成](https://servicenow-prod.fluidtopics.net/sGHPF4yadrTvE83TDWpZgw#FieldReadConfigurationiOSStruct "FieldReadConfiguration 構造を使用すると、ServiceNowインスタンステーブルからフェッチするフィールドと形式を構成できます。") | オプション。返すフィールドとフィールドに含めるものを指定する構成オプション。 デフォルト:nil |
| 完了 | @escaping (結果\<データ、NowDataError\>) | レコードが取得された後に実行する補完ハンドラー。 戻り値: * 成功:データ:要求されたレコード * エラー:NowDataError * `アクセストークン (AccessTokenProviderError)` * AccessTokenProviderError:アクセストークンプロバイダーのエラーコードまたはメッセージ。 * アクセストークンの取得に失敗しました * userSessionError(_ error: Error) アクセストークンにエラーがある場合にスローされます。 * `attachmentValidation` 添付ファイルの検証に失敗したときにスローされます。 * `badResponse(statusCode:HTTPStatusCode)` * HTTPStatusCode:インスタンスから受信したステータスコード。 要求から予期しない応答が返されたときにスローされる * `cannotDecodeModel(DecodingError)` * DecodingError:デコードエラーが検出されました。 コード可能モデルを JSON からデコードできない場合にスローされます。 * `cannotDecodeProperty(type: Any, from: String)` * type:文字列からデコードするラップされた型。 * from:指定されたタイプにデコードする文字列。 文字列でラップされた値を JSON からデコードできない場合にスローされます。 * `cannotEncodeModel(EncodingError)` * EncodingError:エンコードエラーが検出されました。 コード可能モデルを JSON にエンコードできない場合にスローされます。 * `cannotParseResponse` インスタンスからの応答を想定される形式に解析できない場合にスローされます。 * `無効なURL` URL を形成できない場合にスローされます。たとえば、文字列に URL で無効な文字が含まれている場合や空の文字列である場合などです。 * `missingAttachmentMetadata` 添付ファイルのメタデータヘッダーがない場合にスローされます。 * `missingServiceConfiguration` 予期されたサービス構成がない場合にスローされます。 * `欠落している SysID` 予期されたsys_idパラメーターが欠落している場合にスローされます。 * `ネットワーク (NetworkServiceError)` * genericError(文字列) * operationCanceled * サービス無効 * serverError (エラー) * systemError (エラー) ネットワークサービスでエラーが発生したときにスローされます。 {#NTblServ-createRecord_S_O_O_O__NowDataErroriOS-ul-enum} {#NTblServ-createRecord_S_O_O_O__ul_uzx_thj_ppb} |
[表 : 10. パラメーター]

{#NTblServ-createRecord_S_O_O_O__table_vk3_yqj_ppb} {#NTblServ-createRecord_S_O_O_O__table_wk3_yqj_ppb__entry__2}

| タイプ | 説明 |
|-|-|
| なし |   |
[表 : 11. 返される内容]

{#NTblServ-createRecord_S_O_O_O__table_wk3_yqj_ppb}  
次のコード例は、この関数を呼び出す方法を示しています。

    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 (フィールド: \[FieldName: FieldValue\]、tableName: String, writeOptions: FieldWriteOptions? = nil, configuration: FieldReadConfiguration? = nil) {#ariaid-title7}

指定されたフィールドを含む指定されたテーブルにレコードを挿入します。
注:  
このメソッドは廃止されました。代わりに、メソッドの async/await 実装を使用する必要があります。  
パブリッシャーは、カスタム [Codable モデル](https://developer.apple.com/documentation/foundation/archives_and_serialization/encoding_and_decoding_custom_types)にデコードできるデータを出力するか、 [NowTableService - paginator\<Model: Decodable\>(from tableName: String, path: String = Constants.resultPath, coder: Coder = .default, configuration: FetchConfiguration? = nil)](https://servicenow-prod.fluidtopics.net/XD4wjFuPLG8IbOwCT0Ue1Q#NTblServ-paginator_S_S_S_O "ネストを処理するデコードされたモデルのページの反復を可能にするページネーターを作成します。") 関数を使用することもできます。 または、コンビニエンス関数 convertToRecords() を使用して、データを NowRecord オブジェクトに変換することもできます。NowRecords を発行するようにパブリッシャーを変換する方法を次に示します。。

    let dataPublisher: AnyPublisher<Data, NowDataError> = ...
    let recordsPublisher: AnyPublisher<[NowRecord], NowDataError> = myPublisher.convertToRecords()

注:  
レコード内の一部のフィールドは、更新できない場合があります。たとえば、プリフィックスが `sys_` のフィールドは、通常、自動的に生成され、更新できないシステムパラメーターです。指定されておらず、システムによって自動生成されなかったフィールドは、関連付けられたデータタイプの null 値に設定されます。
{#NTblServ-createRecord_S_O_O__table_lww_l4j_ppb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| フィールドあり | \[フィールド名:フィールド値\] | レコードに含めるフィールドの名前と値のペア。 |
| テーブル名内 | 文字列 | インシデントなど、レコードを書き込むテーブルの名前。 |
| writeOptions | [フィールド書き込みオプション](https://servicenow-prod.fluidtopics.net/KmMVLQ3mjoIFoEG1pVxVPQ#FieldWriteOptionsiOSStruct "FieldWriteOptions クラスは、ServiceNowインスタンスのレコードのフィールドを更新または作成するためのオプションを設定する関数を提供します。") | オプション。レコードに書き込まれるデータに適用する構成オプション。 デフォルト:nil |
| 構成 | [FetchConfiguration](https://servicenow-prod.fluidtopics.net/PfnYOhpdQCRiXGASneYU2A#FetchConfigiOSStructure "FetchConfiguration 構造体は、ServiceNow インスタンスからレコードをフェッチするための構成を定義する機能を提供します。") | オプション。返されるレコードを定義するフィルター、ページネーションページサイズ制限、取得するフィールド、フィールドに含める内容など、取得したレコードに適用する構成。 デフォルト:nil - すべてのレコードが返されます。 |
[表 : 12. パラメーター]

{#NTblServ-createRecord_S_O_O__table_lww_l4j_ppb} {#NTblServ-createRecord_S_O_O__table_mww_l4j_ppb__entry__2}

| タイプ | 説明 |
|-|-|
| AnyPublisher\<Data、NowDataError\> | 成功:更新されたレコードを含むデータオブジェクト。 失敗:NowDataError * `アクセストークン (AccessTokenProviderError)` * AccessTokenProviderError:アクセストークンプロバイダーのエラーコードまたはメッセージ。 * アクセストークンの取得に失敗しました * userSessionError(_ error: Error) アクセストークンにエラーがある場合にスローされます。 * `attachmentValidation` 添付ファイルの検証に失敗したときにスローされます。 * `badResponse(statusCode:HTTPStatusCode)` * HTTPStatusCode:インスタンスから受信したステータスコード。 要求から予期しない応答が返されたときにスローされる * `cannotDecodeModel(DecodingError)` * DecodingError:デコードエラーが検出されました。 コード可能モデルを JSON からデコードできない場合にスローされます。 * `cannotDecodeProperty(type: Any, from: String)` * type:文字列からデコードするラップされた型。 * from:指定されたタイプにデコードする文字列。 文字列でラップされた値を JSON からデコードできない場合にスローされます。 * `cannotEncodeModel(EncodingError)` * EncodingError:エンコードエラーが検出されました。 コード可能モデルを JSON にエンコードできない場合にスローされます。 * `cannotParseResponse` インスタンスからの応答を想定される形式に解析できない場合にスローされます。 * `無効なURL` URL を形成できない場合にスローされます。たとえば、文字列に URL で無効な文字が含まれている場合や空の文字列である場合などです。 * `missingAttachmentMetadata` 添付ファイルのメタデータヘッダーがない場合にスローされます。 * `missingServiceConfiguration` 予期されたサービス構成がない場合にスローされます。 * `欠落している SysID` 予期されたsys_idパラメーターが欠落している場合にスローされます。 * `ネットワーク (NetworkServiceError)` * genericError(文字列) * operationCanceled * サービス無効 * serverError (エラー) * systemError (エラー) ネットワークサービスでエラーが発生したときにスローされます。 {#NTblServ-createRecord_S_O_O__NowDataErroriOS-ul-enum} |
[表 : 13. 返される内容]

{#NTblServ-createRecord_S_O_O__table_mww_l4j_ppb}  
この例では、指定されたフィールドを使用して、指定されたテーブルにレコードを挿入する機能を作成する方法を示します。呼び出しの出力は ByteArray で、データを任意のモデルに変換できます。

    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) 非同期スロー {#ariaid-title8}

指定されたテーブルから指定されたコード可能モデルを削除します。
{#NTblServ-delete-async_S_S__table_qvl_lzk_spb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| モデル | モデル | テーブルから削除する `SysIdentifiableModel`。削除するレコードのsys_idが含まれている必要があります。 |
| テーブル名から | 文字列 | インシデントなどの情報を削除するテーブルの名前。 |
[表 : 14. パラメーター]

{#NTblServ-delete-async_S_S__table_qvl_lzk_spb} {#NTblServ-delete-async_S_S__table_rvl_lzk_spb__entry__2}

| タイプ | 説明 |
|-|-|
| なし | メソッドが成功した場合は何も返されません。 |
| Now データエラー | メソッドが失敗したときにスローされます。 * `アクセストークン (AccessTokenProviderError)` * AccessTokenProviderError:アクセストークンプロバイダーのエラーコードまたはメッセージ。 * アクセストークンの取得に失敗しました * userSessionError(_ error: Error) アクセストークンにエラーがある場合にスローされます。 * `attachmentValidation` 添付ファイルの検証に失敗したときにスローされます。 * `badResponse(statusCode:HTTPStatusCode)` * HTTPStatusCode:インスタンスから受信したステータスコード。 要求から予期しない応答が返されたときにスローされる * `cannotDecodeModel(DecodingError)` * DecodingError:デコードエラーが検出されました。 コード可能モデルを JSON からデコードできない場合にスローされます。 * `cannotDecodeProperty(type: Any, from: String)` * type:文字列からデコードするラップされた型。 * from:指定されたタイプにデコードする文字列。 文字列でラップされた値を JSON からデコードできない場合にスローされます。 * `cannotEncodeModel(EncodingError)` * EncodingError:エンコードエラーが検出されました。 コード可能モデルを JSON にエンコードできない場合にスローされます。 * `cannotParseResponse` インスタンスからの応答を想定される形式に解析できない場合にスローされます。 * `無効なURL` URL を形成できない場合にスローされます。たとえば、文字列に URL で無効な文字が含まれている場合や空の文字列である場合などです。 * `missingAttachmentMetadata` 添付ファイルのメタデータヘッダーがない場合にスローされます。 * `missingServiceConfiguration` 予期されたサービス構成がない場合にスローされます。 * `欠落している SysID` 予期されたsys_idパラメーターが欠落している場合にスローされます。 * `ネットワーク (NetworkServiceError)` * genericError(文字列) * operationCanceled * サービス無効 * serverError (エラー) * systemError (エラー) ネットワークサービスでエラーが発生したときにスローされます。 {#NTblServ-delete-async_S_S__NowDataErroriOS-ul-enum} |
[表 : 15. 返される内容]

{#NTblServ-delete-async_S_S__table_rvl_lzk_spb}  
次のコード例は、このメソッドを呼び出す方法を示しています。

    do { 
        try await tableService.delete(model, from: tableName)
        print("Deletion successful.")
    } catch {
        print("Deletion failed with NowDataError: \(error)")
    }

## NowTableService - delete(_ model: Model, from tableName: String, completion: @escaping (Result\<Void, NowDataError\>)) {#ariaid-title9}

指定されたテーブルから指定されたコード可能モデルを削除してから、適切な completion ハンドラーを実行します。
{#NTblServ-delete_S_S_O__table_zss_k1l_spb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| モデル | モデル | テーブルから削除する `SysIdentifiableModel`。削除するレコードのsys_idが含まれている必要があります。 |
| テーブル名から | 文字列 | インシデントなどの情報を削除するテーブルの名前。 |
| 完了 | @escaping (Result\<Void、NowDataError\>) | 指定されたコード可能モデルを削除した後に実行する補完ハンドラー。 戻り値: * 成功:何も返されませんでした * 失敗:NowDataError * `アクセストークン (AccessTokenProviderError)` * AccessTokenProviderError:アクセストークンプロバイダーのエラーコードまたはメッセージ。 * アクセストークンの取得に失敗しました * userSessionError(_ error: Error) アクセストークンにエラーがある場合にスローされます。 * `attachmentValidation` 添付ファイルの検証に失敗したときにスローされます。 * `badResponse(statusCode:HTTPStatusCode)` * HTTPStatusCode:インスタンスから受信したステータスコード。 要求から予期しない応答が返されたときにスローされる * `cannotDecodeModel(DecodingError)` * DecodingError:デコードエラーが検出されました。 コード可能モデルを JSON からデコードできない場合にスローされます。 * `cannotDecodeProperty(type: Any, from: String)` * type:文字列からデコードするラップされた型。 * from:指定されたタイプにデコードする文字列。 文字列でラップされた値を JSON からデコードできない場合にスローされます。 * `cannotEncodeModel(EncodingError)` * EncodingError:エンコードエラーが検出されました。 コード可能モデルを JSON にエンコードできない場合にスローされます。 * `cannotParseResponse` インスタンスからの応答を想定される形式に解析できない場合にスローされます。 * `無効なURL` URL を形成できない場合にスローされます。たとえば、文字列に URL で無効な文字が含まれている場合や空の文字列である場合などです。 * `missingAttachmentMetadata` 添付ファイルのメタデータヘッダーがない場合にスローされます。 * `missingServiceConfiguration` 予期されたサービス構成がない場合にスローされます。 * `欠落している SysID` 予期されたsys_idパラメーターが欠落している場合にスローされます。 * `ネットワーク (NetworkServiceError)` * genericError(文字列) * operationCanceled * サービス無効 * serverError (エラー) * systemError (エラー) ネットワークサービスでエラーが発生したときにスローされます。 {#NTblServ-delete_S_S_O__NowDataErroriOS-ul-enum} {#NTblServ-delete_S_S_O__ul_dpx_jvk_spb} |
[表 : 16. パラメーター]

{#NTblServ-delete_S_S_O__table_zss_k1l_spb} {#NTblServ-delete_S_S_O__table_ats_k1l_spb__entry__2}

| タイプ | 説明 |
|-|-|
| なし |   |
[表 : 17. 返される内容]

{#NTblServ-delete_S_S_O__table_ats_k1l_spb}  
次のコード例は、この関数を呼び出す方法を示しています。

    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: String) {#ariaid-title10}

指定されたテーブルから指定されたコード可能モデルを削除します。
注:  
このメソッドは廃止されました。代わりに、メソッドの async/await 実装を使用する必要があります。
{#NTblServ-delete_S_S__table_qvl_lzk_spb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| モデル | モデル | テーブルから削除する `SysIdentifiableModel`。削除するレコードのsys_idが含まれている必要があります。 |
| テーブル名から | 文字列 | インシデントなどの情報を削除するテーブルの名前。 |
[表 : 18. パラメーター]

{#NTblServ-delete_S_S__table_qvl_lzk_spb} {#NTblServ-delete_S_S__table_rvl_lzk_spb__entry__2}

| タイプ | 説明 |
|-|-|
| AnyPublisher\<Void、NowDataError\> | 成功:何も返されませんでした 失敗:NowDataError * `アクセストークン (AccessTokenProviderError)` * AccessTokenProviderError:アクセストークンプロバイダーのエラーコードまたはメッセージ。 * アクセストークンの取得に失敗しました * userSessionError(_ error: Error) アクセストークンにエラーがある場合にスローされます。 * `attachmentValidation` 添付ファイルの検証に失敗したときにスローされます。 * `badResponse(statusCode:HTTPStatusCode)` * HTTPStatusCode:インスタンスから受信したステータスコード。 要求から予期しない応答が返されたときにスローされる * `cannotDecodeModel(DecodingError)` * DecodingError:デコードエラーが検出されました。 コード可能モデルを JSON からデコードできない場合にスローされます。 * `cannotDecodeProperty(type: Any, from: String)` * type:文字列からデコードするラップされた型。 * from:指定されたタイプにデコードする文字列。 文字列でラップされた値を JSON からデコードできない場合にスローされます。 * `cannotEncodeModel(EncodingError)` * EncodingError:エンコードエラーが検出されました。 コード可能モデルを JSON にエンコードできない場合にスローされます。 * `cannotParseResponse` インスタンスからの応答を想定される形式に解析できない場合にスローされます。 * `無効なURL` URL を形成できない場合にスローされます。たとえば、文字列に URL で無効な文字が含まれている場合や空の文字列である場合などです。 * `missingAttachmentMetadata` 添付ファイルのメタデータヘッダーがない場合にスローされます。 * `missingServiceConfiguration` 予期されたサービス構成がない場合にスローされます。 * `欠落している SysID` 予期されたsys_idパラメーターが欠落している場合にスローされます。 * `ネットワーク (NetworkServiceError)` * genericError(文字列) * operationCanceled * サービス無効 * serverError (エラー) * systemError (エラー) ネットワークサービスでエラーが発生したときにスローされます。 {#NTblServ-delete_S_S__NowDataErroriOS-ul-enum} |
[表 : 19. 返される内容]

{#NTblServ-delete_S_S__table_rvl_lzk_spb}  
次のコード例は、この関数を呼び出す方法を示しています。

    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 - deleteRecord(sysId: SysID, from tableName: String) 非同期スロー {#ariaid-title11}

指定されたテーブルから指定されたレコードを削除します。
{#NTblServ-deleteRecord-async_S_S__table_nvk_2vj_ppb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| sysId | 文字列 | 削除するレコードの sys_id。 |
| テーブル名から | 文字列 | インシデントなどの情報を削除するテーブルの名前。 |
[表 : 20. パラメーター]

{#NTblServ-deleteRecord-async_S_S__table_nvk_2vj_ppb} {#NTblServ-deleteRecord-async_S_S__table_ovk_2vj_ppb__entry__2}

| タイプ | 説明 |
|-|-|
| なし | メソッドが成功した場合は何も返されません。 |
| Now データエラー | メソッドが失敗したときにスローされます。 * `アクセストークン (AccessTokenProviderError)` * AccessTokenProviderError:アクセストークンプロバイダーのエラーコードまたはメッセージ。 * アクセストークンの取得に失敗しました * userSessionError(_ error: Error) アクセストークンにエラーがある場合にスローされます。 * `attachmentValidation` 添付ファイルの検証に失敗したときにスローされます。 * `badResponse(statusCode:HTTPStatusCode)` * HTTPStatusCode:インスタンスから受信したステータスコード。 要求から予期しない応答が返されたときにスローされる * `cannotDecodeModel(DecodingError)` * DecodingError:デコードエラーが検出されました。 コード可能モデルを JSON からデコードできない場合にスローされます。 * `cannotDecodeProperty(type: Any, from: String)` * type:文字列からデコードするラップされた型。 * from:指定されたタイプにデコードする文字列。 文字列でラップされた値を JSON からデコードできない場合にスローされます。 * `cannotEncodeModel(EncodingError)` * EncodingError:エンコードエラーが検出されました。 コード可能モデルを JSON にエンコードできない場合にスローされます。 * `cannotParseResponse` インスタンスからの応答を想定される形式に解析できない場合にスローされます。 * `無効なURL` URL を形成できない場合にスローされます。たとえば、文字列に URL で無効な文字が含まれている場合や空の文字列である場合などです。 * `missingAttachmentMetadata` 添付ファイルのメタデータヘッダーがない場合にスローされます。 * `missingServiceConfiguration` 予期されたサービス構成がない場合にスローされます。 * `欠落している SysID` 予期されたsys_idパラメーターが欠落している場合にスローされます。 * `ネットワーク (NetworkServiceError)` * genericError(文字列) * operationCanceled * サービス無効 * serverError (エラー) * systemError (エラー) ネットワークサービスでエラーが発生したときにスローされます。 {#NTblServ-deleteRecord-async_S_S__NowDataErroriOS-ul-enum} |
[表 : 21. 返される内容]

{#NTblServ-deleteRecord-async_S_S__table_ovk_2vj_ppb}  
次のコード例は、このメソッドを呼び出す方法を示しています。

    do {
        try await tableService.deleteRecord(sysId: sysId, from: tableName)
        print("Deletion successful.")
    } catch {
        print("Deletion failed with NowDataError: \(error)")
    }

## NowTableService - deleteRecord(sysId: SysID, from tableName: String, completion: @escaping (Result\<Void, NowDataError\>)) {#ariaid-title12}

指定されたテーブルから指定されたレコードを削除し、レコードが削除された後に completion オブジェクトを実行します。
{#NTblServ-deleteRecord_S_S_O__table_krx_yvj_ppb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| sysId | 文字列 | 削除するレコードの sys_id。 |
| テーブル名から | 文字列 | インシデントなどの情報を削除するテーブルの名前。 |
| 完了 | @escaping (Result\<Void、NowDataError\>) | 成功:何も返されません。 失敗:NowDataError * `アクセストークン (AccessTokenProviderError)` * AccessTokenProviderError:アクセストークンプロバイダーのエラーコードまたはメッセージ。 * アクセストークンの取得に失敗しました * userSessionError(_ error: Error) アクセストークンにエラーがある場合にスローされます。 * `attachmentValidation` 添付ファイルの検証に失敗したときにスローされます。 * `badResponse(statusCode:HTTPStatusCode)` * HTTPStatusCode:インスタンスから受信したステータスコード。 要求から予期しない応答が返されたときにスローされる * `cannotDecodeModel(DecodingError)` * DecodingError:デコードエラーが検出されました。 コード可能モデルを JSON からデコードできない場合にスローされます。 * `cannotDecodeProperty(type: Any, from: String)` * type:文字列からデコードするラップされた型。 * from:指定されたタイプにデコードする文字列。 文字列でラップされた値を JSON からデコードできない場合にスローされます。 * `cannotEncodeModel(EncodingError)` * EncodingError:エンコードエラーが検出されました。 コード可能モデルを JSON にエンコードできない場合にスローされます。 * `cannotParseResponse` インスタンスからの応答を想定される形式に解析できない場合にスローされます。 * `無効なURL` URL を形成できない場合にスローされます。たとえば、文字列に URL で無効な文字が含まれている場合や空の文字列である場合などです。 * `missingAttachmentMetadata` 添付ファイルのメタデータヘッダーがない場合にスローされます。 * `missingServiceConfiguration` 予期されたサービス構成がない場合にスローされます。 * `欠落している SysID` 予期されたsys_idパラメーターが欠落している場合にスローされます。 * `ネットワーク (NetworkServiceError)` * genericError(文字列) * operationCanceled * サービス無効 * serverError (エラー) * systemError (エラー) ネットワークサービスでエラーが発生したときにスローされます。 {#NTblServ-deleteRecord_S_S_O__NowDataErroriOS-ul-enum} |
[表 : 22. パラメーター]

{#NTblServ-deleteRecord_S_S_O__table_krx_yvj_ppb} {#NTblServ-deleteRecord_S_S_O__table_lrx_yvj_ppb__entry__2}

| タイプ | 説明 |
|-|-|
| なし |   |
[表 : 23. 返される内容]

{#NTblServ-deleteRecord_S_S_O__table_lrx_yvj_ppb}  
次のコード例は、この関数を呼び出す方法を示しています。

    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, from tableName: String) {#ariaid-title13}

指定されたテーブルから指定されたレコードを削除します。
注:  
このメソッドは廃止されました。代わりに、メソッドの async/await 実装を使用する必要があります。
{#NTblServ-deleteRecord_S_S__table_nvk_2vj_ppb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| sysId | 文字列 | 削除するレコードの sys_id。 |
| テーブル名から | 文字列 | インシデントなどの情報を削除するテーブルの名前。 |
[表 : 24. パラメーター]

{#NTblServ-deleteRecord_S_S__table_nvk_2vj_ppb} {#NTblServ-deleteRecord_S_S__table_ovk_2vj_ppb__entry__2}

| タイプ | 説明 |
|-|-|
| AnyPublisher\<Void、NowDataError\> | 成功:何も返されませんでした 失敗:NowDataError * `アクセストークン (AccessTokenProviderError)` * AccessTokenProviderError:アクセストークンプロバイダーのエラーコードまたはメッセージ。 * アクセストークンの取得に失敗しました * userSessionError(_ error: Error) アクセストークンにエラーがある場合にスローされます。 * `attachmentValidation` 添付ファイルの検証に失敗したときにスローされます。 * `badResponse(statusCode:HTTPStatusCode)` * HTTPStatusCode:インスタンスから受信したステータスコード。 要求から予期しない応答が返されたときにスローされる * `cannotDecodeModel(DecodingError)` * DecodingError:デコードエラーが検出されました。 コード可能モデルを JSON からデコードできない場合にスローされます。 * `cannotDecodeProperty(type: Any, from: String)` * type:文字列からデコードするラップされた型。 * from:指定されたタイプにデコードする文字列。 文字列でラップされた値を JSON からデコードできない場合にスローされます。 * `cannotEncodeModel(EncodingError)` * EncodingError:エンコードエラーが検出されました。 コード可能モデルを JSON にエンコードできない場合にスローされます。 * `cannotParseResponse` インスタンスからの応答を想定される形式に解析できない場合にスローされます。 * `無効なURL` URL を形成できない場合にスローされます。たとえば、文字列に URL で無効な文字が含まれている場合や空の文字列である場合などです。 * `missingAttachmentMetadata` 添付ファイルのメタデータヘッダーがない場合にスローされます。 * `missingServiceConfiguration` 予期されたサービス構成がない場合にスローされます。 * `欠落している SysID` 予期されたsys_idパラメーターが欠落している場合にスローされます。 * `ネットワーク (NetworkServiceError)` * genericError(文字列) * operationCanceled * サービス無効 * serverError (エラー) * systemError (エラー) ネットワークサービスでエラーが発生したときにスローされます。 {#NTblServ-deleteRecord_S_S__NowDataErroriOS-ul-enum} |
[表 : 25. 返される内容]

{#NTblServ-deleteRecord_S_S__table_ovk_2vj_ppb}  
この例では、指定したテーブルのレコードを削除する機能を作成する方法を示します。

    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: NowCoreServiceProviding? = nil) {#ariaid-title14}

NowTableService オブジェクトを作成します。
{#NTblServ-init_S_S__table_djd_fv3_ppb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| 構成 | [NowServiceConfiguration](https://servicenow-prod.fluidtopics.net/uTGNTZYlh7StSnwaCDzTxQ#NowServiceConfigurationiOSStruct "NowServiceConfiguration 構造体は、フィーチャ サービスの構成情報を定義します。") | サービスの作成時に使用する設定パラメーター。 |
| コアサービスプロバイダー | NowCoreServiceProviding | オプション。NowTableService に関連付けるサービスプロバイダー。 デフォルト:nil |
[表 : 26. パラメーター]

{#NTblServ-init_S_S__table_djd_fv3_ppb}  
次のコード例は、この関数を呼び出す方法を示しています。

    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 - model\<Model: Decodable\>(with sysId: SysID? = nil, from tableName: String, path: String = Constants.resultPath, coder: Coder = .default, configuration: FetchConfiguration? = nil) 非同期のスロー {#ariaid-title15}

指定されたテーブルからデコード可能なモデルの取得を有効にします。
テーブル API 応答は、次のような result パラメーター内にネストされます。

    {
      "result": [
        { "name": "Ash Williams" },
        { "name": "Lionel Cosgrove" },
        { "name": "Laurie Strode" }
      ]
    }

結果セットが大きい場合は、ページネーター関数のいずれか ( [NowTableService:ページネーター (テーブル名から:文字列、構成:FetchConfiguration?= nil)](https://servicenow-prod.fluidtopics.net/XD4wjFuPLG8IbOwCT0Ue1Q#NTblServ-paginator_S_O "レコードのページの反復処理を可能にするページネーターを作成します。") または [NowTableService - paginator\<Model: Decodable\>(from tableName: String, path: String = Constants.resultPath, coder: Coder = .default, configuration: FetchConfiguration? = nil)](https://servicenow-prod.fluidtopics.net/XD4wjFuPLG8IbOwCT0Ue1Q#NTblServ-paginator_S_S_S_O "ネストを処理するデコードされたモデルのページの反復を可能にするページネーターを作成します。") ) を使用して、ページネーションされたモデルをフェッチします。
{#NTblServ-model-async_S_S_S_S_O__table_nbq_yyj_spb__entry__3}{#NTblServ-model-async_S_S_S_S_O__mobilesdkiOS-tableName-entry}

| 名前 | タイプ | 説明 |
|-|-|-|
| sysId 付き | SysID | オプション。返されるレコードのSys_id。特定のレコードを取得する場合は、sys_idを指定します。 デフォルト:nil |
| テーブル名から | 文字列 | インシデントなどのレコードの取得元のテーブルの名前。 |
| path | 文字列 | ネストされたタイプのドット区切りパス。たとえば、より深いネストには `result` や `foo.bar.baz` を使用します。 デフォルト: `result` |
| コーダー | コーダー | オプション。ServiceNowインスタンスとの間で送受信されるデータをエンコードまたはデコードするために使用する`コーダー`。 可能な値： * default: デフォルトのエンコーダーは、デバイスの`ロケール`と`タイムゾーン`を使用して、`yyy-MM-dd HH:mm:ss` 形式を使用して日付を書式設定します。 * custom(JSONEncoder, JSONDecoder): `カスタム`コーダーを使用して、JSON のデコード/エンコードをよりきめ細かく制御します。 この列挙型は、特別な日付形式、タイムゾーン、ロケールを使用する場合など、独自の `JSONEncoder` と `JSONDecoder` を指定する場合にのみ使用してください。 let myEncoder = JSONEncoder() myEncoder.dateFormat = ... let myDecoder = JSONDecoder() myDecoder.dateFormat = ... let coder: Coder = .custom(myEncoder, myDecoder) {#NTblServ-model-async_S_S_S_S_O__ul_nx3_wrd_sqb} デフォルト:.default |
| 構成 | [FetchConfiguration](https://servicenow-prod.fluidtopics.net/PfnYOhpdQCRiXGASneYU2A#FetchConfigiOSStructure "FetchConfiguration 構造体は、ServiceNow インスタンスからレコードをフェッチするための構成を定義する機能を提供します。") | オプション。返されるレコードを定義するフィルター、ページネーションページサイズ制限、取得するフィールド、フィールドに含める内容など、取得したレコードに適用する構成。 デフォルト:nil - すべてのレコードが返されます。 |
[表 : 27. パラメーター]

{#NTblServ-model-async_S_S_S_S_O__table_nbq_yyj_spb} {#NTblServ-model-async_S_S_S_S_O__table_obq_yyj_spb__entry__2}

| タイプ | 説明 |
|-|-|
| モデル | メソッドが成功した場合に返されます。デコード可能なモデル。 |
| Now データエラー | メソッドが失敗したときにスローされます。 * `アクセストークン (AccessTokenProviderError)` * AccessTokenProviderError:アクセストークンプロバイダーのエラーコードまたはメッセージ。 * アクセストークンの取得に失敗しました * userSessionError(_ error: Error) アクセストークンにエラーがある場合にスローされます。 * `attachmentValidation` 添付ファイルの検証に失敗したときにスローされます。 * `badResponse(statusCode:HTTPStatusCode)` * HTTPStatusCode:インスタンスから受信したステータスコード。 要求から予期しない応答が返されたときにスローされる * `cannotDecodeModel(DecodingError)` * DecodingError:デコードエラーが検出されました。 コード可能モデルを JSON からデコードできない場合にスローされます。 * `cannotDecodeProperty(type: Any, from: String)` * type:文字列からデコードするラップされた型。 * from:指定されたタイプにデコードする文字列。 文字列でラップされた値を JSON からデコードできない場合にスローされます。 * `cannotEncodeModel(EncodingError)` * EncodingError:エンコードエラーが検出されました。 コード可能モデルを JSON にエンコードできない場合にスローされます。 * `cannotParseResponse` インスタンスからの応答を想定される形式に解析できない場合にスローされます。 * `無効なURL` URL を形成できない場合にスローされます。たとえば、文字列に URL で無効な文字が含まれている場合や空の文字列である場合などです。 * `missingAttachmentMetadata` 添付ファイルのメタデータヘッダーがない場合にスローされます。 * `missingServiceConfiguration` 予期されたサービス構成がない場合にスローされます。 * `欠落している SysID` 予期されたsys_idパラメーターが欠落している場合にスローされます。 * `ネットワーク (NetworkServiceError)` * genericError(文字列) * operationCanceled * サービス無効 * serverError (エラー) * systemError (エラー) ネットワークサービスでエラーが発生したときにスローされます。 {#NTblServ-model-async_S_S_S_S_O__NowDataErroriOS-ul-enum} |
[表 : 28. 返される内容]

{#NTblServ-model-async_S_S_S_S_O__table_obq_yyj_spb}  
次のコード例は、このメソッドを呼び出す方法を示しています。

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

次のコード例は、単一のデコード可能モデルを sys_id でフェッチする方法を示しています。`[User].self` ではなく、`User.self` などの単一のモデルタイプを使用します。

    let result = try await service.model(User.self, with: "5137153cc611227c000bbd1bd8cd2005", from: "sys_user", path: "result") 

## NowTableService - model\<Model: Decodable\>(_ type: Model.Type, with sysId: SysID? = nil, from tableName: String, path: String = Constants.resultPath, coder: Coder = .default, configuration: FetchConfiguration? = nil, completion: @escaping (Result\<Model, NowDataError\>)) {#ariaid-title16}

指定されたテーブルからデコード可能なモデルを取得します。
テーブル API 応答は、次のような result パラメーター内にネストされます。

    {
      "result": [
        { "name": "Ash Williams" },
        { "name": "Lionel Cosgrove" },
        { "name": "Laurie Strode" }
      ]
    }

この関数を使用して、ネストされた出力の代わりにデコード可能なモデルを取得します。
{#NTblServ-model_S_S_S_S_S_O_O__table_trc_vfk_spb__entry__3}{#NTblServ-model_S_S_S_S_S_O_O__mobilesdkiOS-tableName-entry}

| 名前 | タイプ | 説明 |
|-|-|-|
| type | モデル.タイプ | デコードする値のタイプ。 |
| sysId 付き | 文字列 | オプション。返されるレコードのSys_id。 デフォルト: configuration 設定に従って返されるすべてのレコード。 |
| テーブル名から | 文字列 | インシデントなどのレコードの取得元のテーブルの名前。 |
| path | 文字列 | オプション。ネストされたタイプのドット区切りパス。たとえば、より深いネストには `result` や `foo.bar.baz` を使用します。 デフォルト: `Constants.resultPath` |
| コーダー | コーダー | オプション。ServiceNowインスタンスとの間で送受信されるデータをエンコードまたはデコードするために使用する`コーダー`。 デフォルト: `.default` |
| 構成 | [FetchConfiguration](https://servicenow-prod.fluidtopics.net/PfnYOhpdQCRiXGASneYU2A#FetchConfigiOSStructure "FetchConfiguration 構造体は、ServiceNow インスタンスからレコードをフェッチするための構成を定義する機能を提供します。") | オプション。返されるレコードを定義するフィルター、ページネーションページサイズ制限、取得するフィールド、フィールドに含める内容など、取得したレコードに適用する構成。 デフォルト:nil - すべてのレコードが返されます。 |
| 完了 | @escaping (結果\<モデル、NowDataError\>) | 指定されたデコード可能モデルを取得した後に実行する補完ハンドラー。 補完ハンドラーの戻り値: * 成功:要求されたモデルタイプのデータ。 * 失敗:NowDataError * `アクセストークン (AccessTokenProviderError)` * AccessTokenProviderError:アクセストークンプロバイダーのエラーコードまたはメッセージ。 * アクセストークンの取得に失敗しました * userSessionError(_ error: Error) アクセストークンにエラーがある場合にスローされます。 * `attachmentValidation` 添付ファイルの検証に失敗したときにスローされます。 * `badResponse(statusCode:HTTPStatusCode)` * HTTPStatusCode:インスタンスから受信したステータスコード。 要求から予期しない応答が返されたときにスローされる * `cannotDecodeModel(DecodingError)` * DecodingError:デコードエラーが検出されました。 コード可能モデルを JSON からデコードできない場合にスローされます。 * `cannotDecodeProperty(type: Any, from: String)` * type:文字列からデコードするラップされた型。 * from:指定されたタイプにデコードする文字列。 文字列でラップされた値を JSON からデコードできない場合にスローされます。 * `cannotEncodeModel(EncodingError)` * EncodingError:エンコードエラーが検出されました。 コード可能モデルを JSON にエンコードできない場合にスローされます。 * `cannotParseResponse` インスタンスからの応答を想定される形式に解析できない場合にスローされます。 * `無効なURL` URL を形成できない場合にスローされます。たとえば、文字列に URL で無効な文字が含まれている場合や空の文字列である場合などです。 * `missingAttachmentMetadata` 添付ファイルのメタデータヘッダーがない場合にスローされます。 * `missingServiceConfiguration` 予期されたサービス構成がない場合にスローされます。 * `欠落している SysID` 予期されたsys_idパラメーターが欠落している場合にスローされます。 * `ネットワーク (NetworkServiceError)` * genericError(文字列) * operationCanceled * サービス無効 * serverError (エラー) * systemError (エラー) ネットワークサービスでエラーが発生したときにスローされます。 {#NTblServ-model_S_S_S_S_S_O_O__NowDataErroriOS-ul-enum} |
[表 : 29. パラメーター]

{#NTblServ-model_S_S_S_S_S_O_O__table_trc_vfk_spb} {#NTblServ-model_S_S_S_S_S_O_O__table_urc_vfk_spb__entry__2}

| タイプ | 説明 |
|-|-|
| なし |   |
[表 : 30. 返される内容]

{#NTblServ-model_S_S_S_S_S_O_O__table_urc_vfk_spb}  
デコードされた User モデルのコレクションを取得します。

    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):
       ...
     }
    }

単一のデコード可能モデルをsys_id別にフェッチするには、\[`User].self` ではなく、`User.self` などの単一のモデルタイプを使用します。

    service.model(User.self, with: "5137153cc611227c000bbd1bd8cd2005", from: "sys_user", path: "result") { resultin ... }

## NowTableService - model\<Model: Decodable\>(with sysId: SysID? = nil, from tableName: String, path: String = Constants.resultPath, coder: Coder = .default, configuration: FetchConfiguration? = nil) {#ariaid-title17}

指定したテーブルからデコード可能なモデルを取得できるようにするパブリッシャーを作成します。
注:  
このメソッドは廃止されました。代わりに、メソッドの async/await 実装を使用する必要があります。  
テーブル API 応答は、次のような result パラメーター内にネストされます。

    {
      "result": [
        { "name": "Ash Williams" },
        { "name": "Lionel Cosgrove" },
        { "name": "Laurie Strode" }
      ]
    }

結果セットが大きい場合は、ページネーター関数のいずれか ( [NowTableService:ページネーター (テーブル名から:文字列、構成:FetchConfiguration?= nil)](https://servicenow-prod.fluidtopics.net/XD4wjFuPLG8IbOwCT0Ue1Q#NTblServ-paginator_S_O "レコードのページの反復処理を可能にするページネーターを作成します。") または [NowTableService - paginator\<Model: Decodable\>(from tableName: String, path: String = Constants.resultPath, coder: Coder = .default, configuration: FetchConfiguration? = nil)](https://servicenow-prod.fluidtopics.net/XD4wjFuPLG8IbOwCT0Ue1Q#NTblServ-paginator_S_S_S_O "ネストを処理するデコードされたモデルのページの反復を可能にするページネーターを作成します。") ) を使用して、ページネーションされたモデルをフェッチします。
{#NTblServ-model_S_S_S_S_O__table_nbq_yyj_spb__entry__3}{#NTblServ-model_S_S_S_S_O__mobilesdkiOS-tableName-entry}

| 名前 | タイプ | 説明 |
|-|-|-|
| sysId 付き | SysID | オプション。返されるレコードのSys_id。特定のレコードを取得する場合は、sys_idを指定します。 デフォルト:nil |
| テーブル名から | 文字列 | インシデントなどのレコードの取得元のテーブルの名前。 |
| path | 文字列 | ネストされたタイプのドット区切りパス。たとえば、より深いネストには `result` や `foo.bar.baz` を使用します。 デフォルト: `result` |
| コーダー | コーダー | オプション。ServiceNowインスタンスとの間で送受信されるデータをエンコードまたはデコードするために使用する`コーダー`。 可能な値： * default: デフォルトのエンコーダーは、デバイスの`ロケール`と`タイムゾーン`を使用して、`yyy-MM-dd HH:mm:ss` 形式を使用して日付を書式設定します。 * custom(JSONEncoder, JSONDecoder): `カスタム`コーダーを使用して、JSON のデコード/エンコードをよりきめ細かく制御します。 この列挙型は、特別な日付形式、タイムゾーン、ロケールを使用する場合など、独自の `JSONEncoder` と `JSONDecoder` を指定する場合にのみ使用してください。 let myEncoder = JSONEncoder() myEncoder.dateFormat = ... let myDecoder = JSONDecoder() myDecoder.dateFormat = ... let coder: Coder = .custom(myEncoder, myDecoder) {#NTblServ-model_S_S_S_S_O__ul_nx3_wrd_sqb} デフォルト:.default |
| 構成 | [FetchConfiguration](https://servicenow-prod.fluidtopics.net/PfnYOhpdQCRiXGASneYU2A#FetchConfigiOSStructure "FetchConfiguration 構造体は、ServiceNow インスタンスからレコードをフェッチするための構成を定義する機能を提供します。") | オプション。返されるレコードを定義するフィルター、ページネーションページサイズ制限、取得するフィールド、フィールドに含める内容など、取得したレコードに適用する構成。 デフォルト:nil - すべてのレコードが返されます。 |
[表 : 31. パラメーター]

{#NTblServ-model_S_S_S_S_O__table_nbq_yyj_spb} {#NTblServ-model_S_S_S_S_O__table_obq_yyj_spb__entry__2}

| タイプ | 説明 |
|-|-|
| AnyPublisher\<Model、NowDataError\> | 成功:パブリッシャーがデコード可能なモデルを返します。 失敗:NowDataError * `アクセストークン (AccessTokenProviderError)` * AccessTokenProviderError:アクセストークンプロバイダーのエラーコードまたはメッセージ。 * アクセストークンの取得に失敗しました * userSessionError(_ error: Error) アクセストークンにエラーがある場合にスローされます。 * `attachmentValidation` 添付ファイルの検証に失敗したときにスローされます。 * `badResponse(statusCode:HTTPStatusCode)` * HTTPStatusCode:インスタンスから受信したステータスコード。 要求から予期しない応答が返されたときにスローされる * `cannotDecodeModel(DecodingError)` * DecodingError:デコードエラーが検出されました。 コード可能モデルを JSON からデコードできない場合にスローされます。 * `cannotDecodeProperty(type: Any, from: String)` * type:文字列からデコードするラップされた型。 * from:指定されたタイプにデコードする文字列。 文字列でラップされた値を JSON からデコードできない場合にスローされます。 * `cannotEncodeModel(EncodingError)` * EncodingError:エンコードエラーが検出されました。 コード可能モデルを JSON にエンコードできない場合にスローされます。 * `cannotParseResponse` インスタンスからの応答を想定される形式に解析できない場合にスローされます。 * `無効なURL` URL を形成できない場合にスローされます。たとえば、文字列に URL で無効な文字が含まれている場合や空の文字列である場合などです。 * `missingAttachmentMetadata` 添付ファイルのメタデータヘッダーがない場合にスローされます。 * `missingServiceConfiguration` 予期されたサービス構成がない場合にスローされます。 * `欠落している SysID` 予期されたsys_idパラメーターが欠落している場合にスローされます。 * `ネットワーク (NetworkServiceError)` * genericError(文字列) * operationCanceled * サービス無効 * serverError (エラー) * systemError (エラー) ネットワークサービスでエラーが発生したときにスローされます。 {#NTblServ-model_S_S_S_S_O__NowDataErroriOS-ul-enum} |
[表 : 32. 返される内容]

{#NTblServ-model_S_S_S_S_O__table_obq_yyj_spb}  
\[ `Users].self` など、タイプ別にデコードされたユーザーモデルを提供するパブリッシャーを取得するには、ドット区切りのパスを指定してモデルをフェッチします。

    struct User: Codable {
      varname: String
    }

    let service: NowTableService = ...
    let publisher: AnyPublisher<[User], NowDataError> = service.model(from: "sys_user", path: "user.photos.gps_location")
     
単一のデコード可能モデルを sys_id でフェッチするには、\[`User].self` ではなく、単一の `User.self` モデルタイプを使用します。

    let publisher: AnyPublisher<User, NowDataError> = service.model(with: "5137153cc611227c000bbd1bd8cd2005", from: "sys_user", path: "result")

## NowTableService:ページネーター (テーブル名から:文字列、構成:FetchConfiguration?= nil) {#ariaid-title18}

レコードのページの反復処理を可能にするページネーターを作成します。
ページネーターの パブリッシャーは、カスタム [Codable モデル](https://developer.apple.com/documentation/foundation/archives_and_serialization/encoding_and_decoding_custom_types)にデコードできるデータを出力するか、 [NowTableService - paginator\<Model: Decodable\>(from tableName: String, path: String = Constants.resultPath, coder: Coder = .default, configuration: FetchConfiguration? = nil)](https://servicenow-prod.fluidtopics.net/XD4wjFuPLG8IbOwCT0Ue1Q#NTblServ-paginator_S_S_S_O "ネストを処理するデコードされたモデルのページの反復を可能にするページネーターを作成します。") 関数を使用することもできます。 または、コンビニエンス関数 convertToRecords() を使用して、データを NowRecord オブジェクトに変換することもできます。NowRecords を発行するようにパブリッシャーを変換する方法を次に示します。

    let dataPublisher: AnyPublisher<Data, NowDataError> = ...
    let recordsPublisher: AnyPublisher<[NowRecord], NowDataError> = myPublisher.convertToRecords()

注:  
configurationパラメーターで上書きされない限り、ページネーターはページあたり 20 アイテムを返します。ACL 評価によっては、ページで実際にフェッチされるアイテムの数がデフォルト値または構成値よりも少なくなる場合があります。
{#NTblServ-paginator_S_O__id_fpc_pcj_ppb__entry__3}{#NTblServ-paginator_S_O__mobilesdkiOS-tableName-row}

| 名前 | タイプ | 説明 |
|-|-|-|
| tableName | 文字列 | インシデントなどのレコードの取得元のテーブルの名前。 |
| 構成 | [FetchConfiguration](https://servicenow-prod.fluidtopics.net/PfnYOhpdQCRiXGASneYU2A#FetchConfigiOSStructure "FetchConfiguration 構造体は、ServiceNow インスタンスからレコードをフェッチするための構成を定義する機能を提供します。") | オプション。返されるレコードを定義するフィルター、ページネーションページサイズ制限、取得するフィールド、フィールドに含める内容など、取得したレコードに適用する構成。 デフォルト:nil - すべてのレコードが返されます。 |
[表 : 33. パラメーター]

{#NTblServ-paginator_S_O__id_fpc_pcj_ppb} {#NTblServ-paginator_S_O__table_uwv_wv3_ppb__entry__2}

| タイプ | 説明 |
|-|-|
| ページネーター\<データ\> | 成功:指定されたレコードを含むページネーターオブジェクト。 失敗:NowDataError * `アクセストークン (AccessTokenProviderError)` * AccessTokenProviderError:アクセストークンプロバイダーのエラーコードまたはメッセージ。 * アクセストークンの取得に失敗しました * userSessionError(_ error: Error) アクセストークンにエラーがある場合にスローされます。 * `attachmentValidation` 添付ファイルの検証に失敗したときにスローされます。 * `badResponse(statusCode:HTTPStatusCode)` * HTTPStatusCode:インスタンスから受信したステータスコード。 要求から予期しない応答が返されたときにスローされる * `cannotDecodeModel(DecodingError)` * DecodingError:デコードエラーが検出されました。 コード可能モデルを JSON からデコードできない場合にスローされます。 * `cannotDecodeProperty(type: Any, from: String)` * type:文字列からデコードするラップされた型。 * from:指定されたタイプにデコードする文字列。 文字列でラップされた値を JSON からデコードできない場合にスローされます。 * `cannotEncodeModel(EncodingError)` * EncodingError:エンコードエラーが検出されました。 コード可能モデルを JSON にエンコードできない場合にスローされます。 * `cannotParseResponse` インスタンスからの応答を想定される形式に解析できない場合にスローされます。 * `無効なURL` URL を形成できない場合にスローされます。たとえば、文字列に URL で無効な文字が含まれている場合や空の文字列である場合などです。 * `missingAttachmentMetadata` 添付ファイルのメタデータヘッダーがない場合にスローされます。 * `missingServiceConfiguration` 予期されたサービス構成がない場合にスローされます。 * `欠落している SysID` 予期されたsys_idパラメーターが欠落している場合にスローされます。 * `ネットワーク (NetworkServiceError)` * genericError(文字列) * operationCanceled * サービス無効 * serverError (エラー) * systemError (エラー) ネットワークサービスでエラーが発生したときにスローされます。 {#NTblServ-paginator_S_O__NowDataErroriOS-ul-enum} |
[表 : 34. 返される内容]

{#NTblServ-paginator_S_O__table_uwv_wv3_ppb}  

    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\>(from tableName: String, path: String = Constants.resultPath, coder: Coder = .default, configuration: FetchConfiguration? = nil) {#ariaid-title19}

ネストを処理するデコードされたモデルのページの反復を可能にするページネーターを作成します。
ServiceNow REST テーブル API 応答は、次のような結果プロパティ内にネストされます。

    {
      "result": [
        { "name": "Ash Williams" },
        { "name": "Lionel Cosgrove" },
        { "name": "Laurie Strode" }
      ]
    }

デコードされたユーザーモデルを提供するページネーターを取得するには、ドット区切りのパスを指定してページネーターをフェッチします。この場合は resultです。

    struct User: Codable {
      varname: String
    }

    let service: NowTableService = ...
    let paginator: Paginator<[User]> = service.paginator(from: "sys_user", path: "result")

注:  
configurationパラメーターで上書きされない限り、ページネーターはページあたり 20 アイテムを返します。ACL 評価によっては、ページで実際にフェッチされたアイテムの数が、デフォルト値または構成値よりも少なくなる場合があります。  
Paginator オブジェクトを取得したら、その Combine Publisher に登録してデータの受信を開始します。

    paginator.publisher
      .subscribe(on: DispatchQueue.global())
      .receive(on: DispatchQueue.main)
      .sink { ... }
      .store(in: &subscriptions)

注:  
すべての Combine サブスクリプションと同様に、予期しない結果を避けるためにサブスクリプションを必ず保持してください。
{#NTblServ-paginator_S_S_S_O__table_vds_gtj_spb__entry__3}{#NTblServ-paginator_S_S_S_O__mobilesdkiOS-tableName-entry}

| 名前 | タイプ | 説明 |
|-|-|-|
| テーブル名から | 文字列 | インシデントなどのレコードの取得元のテーブルの名前。 |
| path | 文字列 | ネストされたタイプのドット区切りパス。たとえば、より深いネストには `result` や `result.user.photos` を使用します。カスタムパスを指定すると、ネストされたデータをフェッチまたは反復処理できます*。* デフォルト: `result` |
| コーダー | コーダー | オプション。ServiceNowインスタンスとの間で送受信されるデータをエンコードまたはデコードするために使用する`コーダー`。 可能な値： * default: デフォルトのエンコーダーは、デバイスの`ロケール`と`タイムゾーン`を使用して、`yyy-MM-dd HH:mm:ss` 形式を使用して日付を書式設定します。 * custom(JSONEncoder, JSONDecoder): `カスタム`コーダーを使用して、JSON のデコード/エンコードをよりきめ細かく制御します。 この列挙型は、特別な日付形式、タイムゾーン、ロケールを使用する場合など、独自の `JSONEncoder` と `JSONDecoder` を指定する場合にのみ使用してください。 let myEncoder = JSONEncoder() myEncoder.dateFormat = ... let myDecoder = JSONDecoder() myDecoder.dateFormat = ... let coder: Coder = .custom(myEncoder, myDecoder) {#NTblServ-paginator_S_S_S_O__ul_nx3_wrd_sqb} デフォルト:.default |
| 構成 | [FetchConfiguration](https://servicenow-prod.fluidtopics.net/PfnYOhpdQCRiXGASneYU2A#FetchConfigiOSStructure "FetchConfiguration 構造体は、ServiceNow インスタンスからレコードをフェッチするための構成を定義する機能を提供します。") | オプション。返されるレコードを定義するフィルター、ページネーションページサイズ制限、取得するフィールド、フィールドに含める内容など、取得したレコードに適用する構成。 デフォルト:nil - すべてのレコードが返されます。 |
[表 : 35. パラメーター]

{#NTblServ-paginator_S_S_S_O__table_vds_gtj_spb} {#NTblServ-paginator_S_S_S_O__table_wds_gtj_spb__entry__2}

| タイプ | 説明 |
|-|-|
| ページネーター\<データ\> | 成功:ページングされた `デコード可能` モデルを含むページネーターオブジェクト。 失敗:NowDataError * `アクセストークン (AccessTokenProviderError)` * AccessTokenProviderError:アクセストークンプロバイダーのエラーコードまたはメッセージ。 * アクセストークンの取得に失敗しました * userSessionError(_ error: Error) アクセストークンにエラーがある場合にスローされます。 * `attachmentValidation` 添付ファイルの検証に失敗したときにスローされます。 * `badResponse(statusCode:HTTPStatusCode)` * HTTPStatusCode:インスタンスから受信したステータスコード。 要求から予期しない応答が返されたときにスローされる * `cannotDecodeModel(DecodingError)` * DecodingError:デコードエラーが検出されました。 コード可能モデルを JSON からデコードできない場合にスローされます。 * `cannotDecodeProperty(type: Any, from: String)` * type:文字列からデコードするラップされた型。 * from:指定されたタイプにデコードする文字列。 文字列でラップされた値を JSON からデコードできない場合にスローされます。 * `cannotEncodeModel(EncodingError)` * EncodingError:エンコードエラーが検出されました。 コード可能モデルを JSON にエンコードできない場合にスローされます。 * `cannotParseResponse` インスタンスからの応答を想定される形式に解析できない場合にスローされます。 * `無効なURL` URL を形成できない場合にスローされます。たとえば、文字列に URL で無効な文字が含まれている場合や空の文字列である場合などです。 * `missingAttachmentMetadata` 添付ファイルのメタデータヘッダーがない場合にスローされます。 * `missingServiceConfiguration` 予期されたサービス構成がない場合にスローされます。 * `欠落している SysID` 予期されたsys_idパラメーターが欠落している場合にスローされます。 * `ネットワーク (NetworkServiceError)` * genericError(文字列) * operationCanceled * サービス無効 * serverError (エラー) * systemError (エラー) ネットワークサービスでエラーが発生したときにスローされます。 {#NTblServ-paginator_S_S_S_O__NowDataErroriOS-ul-enum} |
[表 : 36. 返される内容]

{#NTblServ-paginator_S_S_S_O__table_wds_gtj_spb}  
この例では、デコードされたユーザーモデルを提供する Paginator オブジェクトを取得する方法を示します。目的の Paginator オブジェクトを取得するには、コンパイラにユーザーモデル (\[User\]) のコレクションを返すようにほのめかし、ユーザーが結果パスの下にネストされていることを Paginator オブジェクトに通知します。

    struct User: Codable {
      var name: String
    }

    let service: NowTableService = ...
    let paginator: Paginator<[User]> = service.paginator(from: "sys_user", path: "result")

注:  
テーブル API は常に結果パスの下にネストされた結果を返すため、path パラメーターを安全に削除できます。

## NowTableService:レコード (sysId:SysID、テーブル名から:文字列、構成:FieldReadConfiguration?= nil) 非同期スロー {#ariaid-title20}

ServiceNowインスタンスの指定されたテーブルから指定されたレコードを取得します。
パブリッシャーは、カスタム [Codable モデル](https://developer.apple.com/documentation/foundation/archives_and_serialization/encoding_and_decoding_custom_types)にデコードできるデータを出力するか、 [NowTableService - paginator\<Model: Decodable\>(from tableName: String, path: String = Constants.resultPath, coder: Coder = .default, configuration: FetchConfiguration? = nil)](https://servicenow-prod.fluidtopics.net/XD4wjFuPLG8IbOwCT0Ue1Q#NTblServ-paginator_S_S_S_O "ネストを処理するデコードされたモデルのページの反復を可能にするページネーターを作成します。") 関数を使用することもできます。 または、コンビニエンス関数 convertToRecords() を使用して、データを NowRecord オブジェクトに変換することもできます。NowRecords を発行するようにパブリッシャーを変換する方法を次に示します。。

    let dataPublisher: AnyPublisher<Data, NowDataError> = ...
    let recordsPublisher: AnyPublisher<[NowRecord], NowDataError> = myPublisher.convertToRecords()

{#NTblServ-record-async_S_S_O__table_fsr_23j_ppb__entry__3}{#NTblServ-record-async_S_S_O__mobilesdkiOS-tableName-entry}

| 名前 | タイプ | 説明 |
|-|-|-|
| sysId | 文字列 | ServiceNowインスタンスから返されるレコードのSys_id。 |
| テーブル名から | 文字列 | インシデントなどのレコードの取得元のテーブルの名前。 |
| 構成 | [FetchConfiguration](https://servicenow-prod.fluidtopics.net/PfnYOhpdQCRiXGASneYU2A#FetchConfigiOSStructure "FetchConfiguration 構造体は、ServiceNow インスタンスからレコードをフェッチするための構成を定義する機能を提供します。") | オプション。返されるレコードを定義するフィルター、ページネーションページサイズ制限、取得するフィールド、フィールドに含める内容など、取得したレコードに適用する構成。 デフォルト:nil - すべてのレコードが返されます。 |
[表 : 37. パラメーター]

{#NTblServ-record-async_S_S_O__table_fsr_23j_ppb} {#NTblServ-record-async_S_S_O__table_gsr_23j_ppb__entry__2}

| タイプ | 説明 |
|-|-|
| データ | メソッドが成功した場合に返されます。指定されたレコードを含むデータオブジェクト。 |
| Now データエラー | メソッドが失敗したときにスローされます。 * `アクセストークン (AccessTokenProviderError)` * AccessTokenProviderError:アクセストークンプロバイダーのエラーコードまたはメッセージ。 * アクセストークンの取得に失敗しました * userSessionError(_ error: Error) アクセストークンにエラーがある場合にスローされます。 * `attachmentValidation` 添付ファイルの検証に失敗したときにスローされます。 * `badResponse(statusCode:HTTPStatusCode)` * HTTPStatusCode:インスタンスから受信したステータスコード。 要求から予期しない応答が返されたときにスローされる * `cannotDecodeModel(DecodingError)` * DecodingError:デコードエラーが検出されました。 コード可能モデルを JSON からデコードできない場合にスローされます。 * `cannotDecodeProperty(type: Any, from: String)` * type:文字列からデコードするラップされた型。 * from:指定されたタイプにデコードする文字列。 文字列でラップされた値を JSON からデコードできない場合にスローされます。 * `cannotEncodeModel(EncodingError)` * EncodingError:エンコードエラーが検出されました。 コード可能モデルを JSON にエンコードできない場合にスローされます。 * `cannotParseResponse` インスタンスからの応答を想定される形式に解析できない場合にスローされます。 * `無効なURL` URL を形成できない場合にスローされます。たとえば、文字列に URL で無効な文字が含まれている場合や空の文字列である場合などです。 * `missingAttachmentMetadata` 添付ファイルのメタデータヘッダーがない場合にスローされます。 * `missingServiceConfiguration` 予期されたサービス構成がない場合にスローされます。 * `欠落している SysID` 予期されたsys_idパラメーターが欠落している場合にスローされます。 * `ネットワーク (NetworkServiceError)` * genericError(文字列) * operationCanceled * サービス無効 * serverError (エラー) * systemError (エラー) ネットワークサービスでエラーが発生したときにスローされます。 {#NTblServ-record-async_S_S_O__NowDataErroriOS-ul-enum} |
[表 : 38. 返される内容]

{#NTblServ-record-async_S_S_O__table_gsr_23j_ppb}  
次のコード例は、このメソッドを呼び出す方法を示しています。

    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:レコード (sysId:SysID、テーブル名から:文字列、構成:FieldReadConfiguration、完了:@escaping (結果\<データ、NowDataError\>) {#ariaid-title21}

指定されたテーブルから指定されたレコードを取得し、レコードが取得された後に完了ハンドラーを実行します。
必要に応じて、返された結果をカスタム Codable モデルにデコードするか、代わりに [NowTableService - paginator\<Model: Decodable\>(from tableName: String, path: String = Constants.resultPath, coder: Coder = .default, configuration: FetchConfiguration? = nil)](https://servicenow-prod.fluidtopics.net/XD4wjFuPLG8IbOwCT0Ue1Q#NTblServ-paginator_S_S_S_O "ネストを処理するデコードされたモデルのページの反復を可能にするページネーターを作成します。") 関数を使用できます。 または、コンビニエンス関数 convertToRecords() を使用して、データを NowRecord オブジェクトに変換することもできます。NowRecords を発行するようにパブリッシャーを変換する方法を次に示します。

    let dataPublisher: AnyPublisher<Data, NowDataError> = ...
    let recordsPublisher: AnyPublisher<[NowRecord], NowDataError> = myResult.convertToRecords()

結果セットが大きい場合は、 [NowTableService:ページネーター (テーブル名から:文字列、構成:FetchConfiguration?= nil)](https://servicenow-prod.fluidtopics.net/XD4wjFuPLG8IbOwCT0Ue1Q#NTblServ-paginator_S_O "レコードのページの反復処理を可能にするページネーターを作成します。") 関数を使用してページネーションされた結果をフェッチします。
{#NTblServ-record_S_S_O_O__table_fzv_fnj_ppb__entry__3}{#NTblServ-record_S_S_O_O__mobilesdkiOS-tableName-entry}

| 名前 | タイプ | 説明 |
|-|-|-|
| sysId | 文字列 | ServiceNowインスタンスから返されるレコードのSys_id。 |
| テーブル名から | 文字列 | インシデントなどのレコードの取得元のテーブルの名前。 |
| 構成 | [FetchConfiguration](https://servicenow-prod.fluidtopics.net/PfnYOhpdQCRiXGASneYU2A#FetchConfigiOSStructure "FetchConfiguration 構造体は、ServiceNow インスタンスからレコードをフェッチするための構成を定義する機能を提供します。") | オプション。返されるレコードを定義するフィルター、ページネーションページサイズ制限、取得するフィールド、フィールドに含める内容など、取得したレコードに適用する構成。 デフォルト:nil - すべてのレコードが返されます。 |
| 完了 | @escaping (結果\<データ、NowDataError\>) | レコードが取得された後に実行する補完ハンドラー。 戻り値: * 成功:データ:要求されたレコード * エラー:NowDataError * `アクセストークン (AccessTokenProviderError)` * AccessTokenProviderError:アクセストークンプロバイダーのエラーコードまたはメッセージ。 * アクセストークンの取得に失敗しました * userSessionError(_ error: Error) アクセストークンにエラーがある場合にスローされます。 * `attachmentValidation` 添付ファイルの検証に失敗したときにスローされます。 * `badResponse(statusCode:HTTPStatusCode)` * HTTPStatusCode:インスタンスから受信したステータスコード。 要求から予期しない応答が返されたときにスローされる * `cannotDecodeModel(DecodingError)` * DecodingError:デコードエラーが検出されました。 コード可能モデルを JSON からデコードできない場合にスローされます。 * `cannotDecodeProperty(type: Any, from: String)` * type:文字列からデコードするラップされた型。 * from:指定されたタイプにデコードする文字列。 文字列でラップされた値を JSON からデコードできない場合にスローされます。 * `cannotEncodeModel(EncodingError)` * EncodingError:エンコードエラーが検出されました。 コード可能モデルを JSON にエンコードできない場合にスローされます。 * `cannotParseResponse` インスタンスからの応答を想定される形式に解析できない場合にスローされます。 * `無効なURL` URL を形成できない場合にスローされます。たとえば、文字列に URL で無効な文字が含まれている場合や空の文字列である場合などです。 * `missingAttachmentMetadata` 添付ファイルのメタデータヘッダーがない場合にスローされます。 * `missingServiceConfiguration` 予期されたサービス構成がない場合にスローされます。 * `欠落している SysID` 予期されたsys_idパラメーターが欠落している場合にスローされます。 * `ネットワーク (NetworkServiceError)` * genericError(文字列) * operationCanceled * サービス無効 * serverError (エラー) * systemError (エラー) ネットワークサービスでエラーが発生したときにスローされます。 {#NTblServ-record_S_S_O_O__NowDataErroriOS-ul-enum} {#NTblServ-record_S_S_O_O__ul_uzx_thj_ppb} |
[表 : 39. パラメーター]

{#NTblServ-record_S_S_O_O__table_fzv_fnj_ppb} {#NTblServ-record_S_S_O_O__table_gzv_fnj_ppb__entry__2}

| タイプ | 説明 |
|-|-|
| なし |   |
[表 : 40. 返される内容]

{#NTblServ-record_S_S_O_O__table_gzv_fnj_ppb}  
次のコード例は、このメソッドを呼び出す方法を示しています。

    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:レコード (sysId:SysID、テーブル名から:文字列、構成:FieldReadConfiguration?= nil) {#ariaid-title22}

ServiceNowインスタンスの指定されたテーブルから指定されたレコードを取得するパブリッシャーを作成します。
注:  
このメソッドは廃止されました。代わりに、メソッドの async/await 実装を使用する必要があります。  
パブリッシャーは、カスタム [Codable モデル](https://developer.apple.com/documentation/foundation/archives_and_serialization/encoding_and_decoding_custom_types)にデコードできるデータを出力するか、 [NowTableService - paginator\<Model: Decodable\>(from tableName: String, path: String = Constants.resultPath, coder: Coder = .default, configuration: FetchConfiguration? = nil)](https://servicenow-prod.fluidtopics.net/XD4wjFuPLG8IbOwCT0Ue1Q#NTblServ-paginator_S_S_S_O "ネストを処理するデコードされたモデルのページの反復を可能にするページネーターを作成します。") 関数を使用することもできます。 または、コンビニエンス関数 convertToRecords() を使用して、データを NowRecord オブジェクトに変換することもできます。NowRecords を発行するようにパブリッシャーを変換する方法を次に示します。。

    let dataPublisher: AnyPublisher<Data, NowDataError> = ...
    let recordsPublisher: AnyPublisher<[NowRecord], NowDataError> = myPublisher.convertToRecords()

{#NTblServ-record_S_S_O__table_fsr_23j_ppb__entry__3}{#NTblServ-record_S_S_O__mobilesdkiOS-tableName-entry}

| 名前 | タイプ | 説明 |
|-|-|-|
| sysId | 文字列 | ServiceNowインスタンスから返されるレコードのSys_id。 |
| テーブル名から | 文字列 | インシデントなどのレコードの取得元のテーブルの名前。 |
| 構成 | [FetchConfiguration](https://servicenow-prod.fluidtopics.net/PfnYOhpdQCRiXGASneYU2A#FetchConfigiOSStructure "FetchConfiguration 構造体は、ServiceNow インスタンスからレコードをフェッチするための構成を定義する機能を提供します。") | オプション。返されるレコードを定義するフィルター、ページネーションページサイズ制限、取得するフィールド、フィールドに含める内容など、取得したレコードに適用する構成。 デフォルト:nil - すべてのレコードが返されます。 |
[表 : 41. パラメーター]

{#NTblServ-record_S_S_O__table_fsr_23j_ppb} {#NTblServ-record_S_S_O__table_gsr_23j_ppb__entry__2}

| タイプ | 説明 |
|-|-|
| AnyPublisher\<Data、NowDataError\> | 成功:指定されたレコードを含むデータオブジェクト。 失敗:NowDataError * `アクセストークン (AccessTokenProviderError)` * AccessTokenProviderError:アクセストークンプロバイダーのエラーコードまたはメッセージ。 * アクセストークンの取得に失敗しました * userSessionError(_ error: Error) アクセストークンにエラーがある場合にスローされます。 * `attachmentValidation` 添付ファイルの検証に失敗したときにスローされます。 * `badResponse(statusCode:HTTPStatusCode)` * HTTPStatusCode:インスタンスから受信したステータスコード。 要求から予期しない応答が返されたときにスローされる * `cannotDecodeModel(DecodingError)` * DecodingError:デコードエラーが検出されました。 コード可能モデルを JSON からデコードできない場合にスローされます。 * `cannotDecodeProperty(type: Any, from: String)` * type:文字列からデコードするラップされた型。 * from:指定されたタイプにデコードする文字列。 文字列でラップされた値を JSON からデコードできない場合にスローされます。 * `cannotEncodeModel(EncodingError)` * EncodingError:エンコードエラーが検出されました。 コード可能モデルを JSON にエンコードできない場合にスローされます。 * `cannotParseResponse` インスタンスからの応答を想定される形式に解析できない場合にスローされます。 * `無効なURL` URL を形成できない場合にスローされます。たとえば、文字列に URL で無効な文字が含まれている場合や空の文字列である場合などです。 * `missingAttachmentMetadata` 添付ファイルのメタデータヘッダーがない場合にスローされます。 * `missingServiceConfiguration` 予期されたサービス構成がない場合にスローされます。 * `欠落している SysID` 予期されたsys_idパラメーターが欠落している場合にスローされます。 * `ネットワーク (NetworkServiceError)` * genericError(文字列) * operationCanceled * サービス無効 * serverError (エラー) * systemError (エラー) ネットワークサービスでエラーが発生したときにスローされます。 {#NTblServ-record_S_S_O__NowDataErroriOS-ul-enum} |
[表 : 42. 返される内容]

{#NTblServ-record_S_S_O__table_gsr_23j_ppb}  
この例では、指定されたフィールドを使用して、指定されたテーブルから指定されたレコードを取得する関数を作成する方法を示します。呼び出しの出力は ByteArray で、データを任意のモデルに変換できます。

    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:レコード (テーブル名から:文字列、構成:FetchConfiguration?= nil) 非同期スロー {#ariaid-title23}

指定されたテーブルからレコードを取得します。
パブリッシャーは、カスタム [Codable モデル](https://developer.apple.com/documentation/foundation/archives_and_serialization/encoding_and_decoding_custom_types)にデコードできるデータを出力するか、 [NowTableService - paginator\<Model: Decodable\>(from tableName: String, path: String = Constants.resultPath, coder: Coder = .default, configuration: FetchConfiguration? = nil)](https://servicenow-prod.fluidtopics.net/XD4wjFuPLG8IbOwCT0Ue1Q#NTblServ-paginator_S_S_S_O "ネストを処理するデコードされたモデルのページの反復を可能にするページネーターを作成します。") 関数を使用することもできます。 または、コンビニエンス関数 convertToRecords() を使用して、データを NowRecord オブジェクトに変換することもできます。NowRecords を発行するようにパブリッシャーを変換する方法を次に示します。。

    let dataPublisher: AnyPublisher<Data, NowDataError> = ...
    let recordsPublisher: AnyPublisher<[NowRecord], NowDataError> = myPublisher.convertToRecords()

結果セットが大きい場合は、 [NowTableService:ページネーター (テーブル名から:文字列、構成:FetchConfiguration?= nil)](https://servicenow-prod.fluidtopics.net/XD4wjFuPLG8IbOwCT0Ue1Q#NTblServ-paginator_S_O "レコードのページの反復処理を可能にするページネーターを作成します。") 関数を使用してページネーションされた結果をフェッチします。
{#NTblServ-records-async_S_O__id_rzw_lcj_ppb__entry__3}{#NTblServ-records-async_S_O__mobilesdkiOS-tableName-entry}

| 名前 | タイプ | 説明 |
|-|-|-|
| テーブル名から | 文字列 | インシデントなどのレコードの取得元のテーブルの名前。 |
| 構成 | [FetchConfiguration](https://servicenow-prod.fluidtopics.net/PfnYOhpdQCRiXGASneYU2A#FetchConfigiOSStructure "FetchConfiguration 構造体は、ServiceNow インスタンスからレコードをフェッチするための構成を定義する機能を提供します。") | オプション。返されるレコードを定義するフィルター、ページネーションページサイズ制限、取得するフィールド、フィールドに含める内容など、取得したレコードに適用する構成。 デフォルト:nil - すべてのレコードが返されます。 |
[表 : 43. パラメーター]

{#NTblServ-records-async_S_O__id_rzw_lcj_ppb} {#NTblServ-records-async_S_O__table_yvr_d1j_ppb__entry__2}

| タイプ | 説明 |
|-|-|
| データ | メソッドが成功した場合に返されます。指定されたレコードを含むデータオブジェクト。 |
| Now データエラー | メソッドが失敗したときにスローされます。 * `アクセストークン (AccessTokenProviderError)` * AccessTokenProviderError:アクセストークンプロバイダーのエラーコードまたはメッセージ。 * アクセストークンの取得に失敗しました * userSessionError(_ error: Error) アクセストークンにエラーがある場合にスローされます。 * `attachmentValidation` 添付ファイルの検証に失敗したときにスローされます。 * `badResponse(statusCode:HTTPStatusCode)` * HTTPStatusCode:インスタンスから受信したステータスコード。 要求から予期しない応答が返されたときにスローされる * `cannotDecodeModel(DecodingError)` * DecodingError:デコードエラーが検出されました。 コード可能モデルを JSON からデコードできない場合にスローされます。 * `cannotDecodeProperty(type: Any, from: String)` * type:文字列からデコードするラップされた型。 * from:指定されたタイプにデコードする文字列。 文字列でラップされた値を JSON からデコードできない場合にスローされます。 * `cannotEncodeModel(EncodingError)` * EncodingError:エンコードエラーが検出されました。 コード可能モデルを JSON にエンコードできない場合にスローされます。 * `cannotParseResponse` インスタンスからの応答を想定される形式に解析できない場合にスローされます。 * `無効なURL` URL を形成できない場合にスローされます。たとえば、文字列に URL で無効な文字が含まれている場合や空の文字列である場合などです。 * `missingAttachmentMetadata` 添付ファイルのメタデータヘッダーがない場合にスローされます。 * `missingServiceConfiguration` 予期されたサービス構成がない場合にスローされます。 * `欠落している SysID` 予期されたsys_idパラメーターが欠落している場合にスローされます。 * `ネットワーク (NetworkServiceError)` * genericError(文字列) * operationCanceled * サービス無効 * serverError (エラー) * systemError (エラー) ネットワークサービスでエラーが発生したときにスローされます。 {#NTblServ-records-async_S_O__NowDataErroriOS-ul-enum} |
[表 : 44. 返される内容]

{#NTblServ-records-async_S_O__table_yvr_d1j_ppb}  
次のコード例は、このメソッドを呼び出す方法を示しています。

    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:レコード (テーブル名から:文字列、構成:FetchConfiguration? = nil、完了:@escaping (結果\<データ、NowDataError\>)) {#ariaid-title24}

指定されたテーブルからレコードを取得し、レコードが取得された後に completion ハンドラーを実行します。
必要に応じて、返された結果をカスタム Codable モデルにデコードするか、代わりに [NowTableService - paginator\<Model: Decodable\>(from tableName: String, path: String = Constants.resultPath, coder: Coder = .default, configuration: FetchConfiguration? = nil)](https://servicenow-prod.fluidtopics.net/XD4wjFuPLG8IbOwCT0Ue1Q#NTblServ-paginator_S_S_S_O "ネストを処理するデコードされたモデルのページの反復を可能にするページネーターを作成します。") 関数を使用できます。 または、コンビニエンス関数 convertToRecords() を使用して、データを NowRecord オブジェクトに変換することもできます。NowRecords を発行するようにパブリッシャーを変換する方法を次に示します。

    let dataPublisher: AnyPublisher<Data, NowDataError> = ...
    let recordsPublisher: AnyPublisher<[NowRecord], NowDataError> = myResult.convertToRecords()

結果セットが大きい場合は、 [NowTableService:ページネーター (テーブル名から:文字列、構成:FetchConfiguration?= nil)](https://servicenow-prod.fluidtopics.net/XD4wjFuPLG8IbOwCT0Ue1Q#NTblServ-paginator_S_O "レコードのページの反復処理を可能にするページネーターを作成します。") 関数を使用してページネーションされた結果をフェッチします。
{#NTblServ-records_S_O_O__table_uvc_y2j_ppb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| テーブル名内 | 文字列 | インシデントなど、レコードを書き込むテーブルの名前。 |
| 構成 | [FetchConfiguration](https://servicenow-prod.fluidtopics.net/PfnYOhpdQCRiXGASneYU2A#FetchConfigiOSStructure "FetchConfiguration 構造体は、ServiceNow インスタンスからレコードをフェッチするための構成を定義する機能を提供します。") | オプション。返されるレコードを定義するフィルター、ページネーションページサイズ制限、取得するフィールド、フィールドに含める内容など、取得したレコードに適用する構成。 デフォルト:nil - すべてのレコードが返されます。 |
| 完了 | @escaping (結果\<データ、NowDataError\>) | レコードが取得された後に実行する補完ハンドラー。 戻り値: * 成功:データ:要求されたレコード * エラー:NowDataError * `アクセストークン (AccessTokenProviderError)` * AccessTokenProviderError:アクセストークンプロバイダーのエラーコードまたはメッセージ。 * アクセストークンの取得に失敗しました * userSessionError(_ error: Error) アクセストークンにエラーがある場合にスローされます。 * `attachmentValidation` 添付ファイルの検証に失敗したときにスローされます。 * `badResponse(statusCode:HTTPStatusCode)` * HTTPStatusCode:インスタンスから受信したステータスコード。 要求から予期しない応答が返されたときにスローされる * `cannotDecodeModel(DecodingError)` * DecodingError:デコードエラーが検出されました。 コード可能モデルを JSON からデコードできない場合にスローされます。 * `cannotDecodeProperty(type: Any, from: String)` * type:文字列からデコードするラップされた型。 * from:指定されたタイプにデコードする文字列。 文字列でラップされた値を JSON からデコードできない場合にスローされます。 * `cannotEncodeModel(EncodingError)` * EncodingError:エンコードエラーが検出されました。 コード可能モデルを JSON にエンコードできない場合にスローされます。 * `cannotParseResponse` インスタンスからの応答を想定される形式に解析できない場合にスローされます。 * `無効なURL` URL を形成できない場合にスローされます。たとえば、文字列に URL で無効な文字が含まれている場合や空の文字列である場合などです。 * `missingAttachmentMetadata` 添付ファイルのメタデータヘッダーがない場合にスローされます。 * `missingServiceConfiguration` 予期されたサービス構成がない場合にスローされます。 * `欠落している SysID` 予期されたsys_idパラメーターが欠落している場合にスローされます。 * `ネットワーク (NetworkServiceError)` * genericError(文字列) * operationCanceled * サービス無効 * serverError (エラー) * systemError (エラー) ネットワークサービスでエラーが発生したときにスローされます。 {#NTblServ-records_S_O_O__NowDataErroriOS-ul-enum} {#NTblServ-records_S_O_O__ul_uzx_thj_ppb} |
[表 : 45. パラメーター]

{#NTblServ-records_S_O_O__table_uvc_y2j_ppb} {#NTblServ-records_S_O_O__table_vvc_y2j_ppb__entry__2}

| タイプ | 説明 |
|-|-|
| なし |   |
[表 : 46. 返される内容]

{#NTblServ-records_S_O_O__table_vvc_y2j_ppb}  
次のコード例は、このメソッドを呼び出す方法を示しています。

    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:レコード (テーブル名から:文字列、構成:FetchConfiguration?= nil) {#ariaid-title25}

指定されたテーブルからレコードを取得できるようにする公開者を作成します。
注:  
このメソッドは廃止されました。代わりに、メソッドの async/await 実装を使用する必要があります。  
パブリッシャーは、カスタム [Codable モデル](https://developer.apple.com/documentation/foundation/archives_and_serialization/encoding_and_decoding_custom_types)にデコードできるデータを出力するか、 [NowTableService - paginator\<Model: Decodable\>(from tableName: String, path: String = Constants.resultPath, coder: Coder = .default, configuration: FetchConfiguration? = nil)](https://servicenow-prod.fluidtopics.net/XD4wjFuPLG8IbOwCT0Ue1Q#NTblServ-paginator_S_S_S_O "ネストを処理するデコードされたモデルのページの反復を可能にするページネーターを作成します。") 関数を使用することもできます。 または、コンビニエンス関数 convertToRecords() を使用して、データを NowRecord オブジェクトに変換することもできます。NowRecords を発行するようにパブリッシャーを変換する方法を次に示します。。

    let dataPublisher: AnyPublisher<Data, NowDataError> = ...
    let recordsPublisher: AnyPublisher<[NowRecord], NowDataError> = myPublisher.convertToRecords()

結果セットが大きい場合は、 [NowTableService:ページネーター (テーブル名から:文字列、構成:FetchConfiguration?= nil)](https://servicenow-prod.fluidtopics.net/XD4wjFuPLG8IbOwCT0Ue1Q#NTblServ-paginator_S_O "レコードのページの反復処理を可能にするページネーターを作成します。") 関数を使用してページネーションされた結果をフェッチします。
{#NTblServ-records_S_O__id_rzw_lcj_ppb__entry__3}{#NTblServ-records_S_O__mobilesdkiOS-tableName-entry}

| 名前 | タイプ | 説明 |
|-|-|-|
| テーブル名から | 文字列 | インシデントなどのレコードの取得元のテーブルの名前。 |
| 構成 | [FetchConfiguration](https://servicenow-prod.fluidtopics.net/PfnYOhpdQCRiXGASneYU2A#FetchConfigiOSStructure "FetchConfiguration 構造体は、ServiceNow インスタンスからレコードをフェッチするための構成を定義する機能を提供します。") | オプション。返されるレコードを定義するフィルター、ページネーションページサイズ制限、取得するフィールド、フィールドに含める内容など、取得したレコードに適用する構成。 デフォルト:nil - すべてのレコードが返されます。 |
[表 : 47. パラメーター]

{#NTblServ-records_S_O__id_rzw_lcj_ppb} {#NTblServ-records_S_O__table_yvr_d1j_ppb__entry__2}

| タイプ | 説明 |
|-|-|
| AnyPublisher\<Data、NowDataError\> | 成功:指定されたレコードを含むデータオブジェクト。 失敗:NowDataError * `アクセストークン (AccessTokenProviderError)` * AccessTokenProviderError:アクセストークンプロバイダーのエラーコードまたはメッセージ。 * アクセストークンの取得に失敗しました * userSessionError(_ error: Error) アクセストークンにエラーがある場合にスローされます。 * `attachmentValidation` 添付ファイルの検証に失敗したときにスローされます。 * `badResponse(statusCode:HTTPStatusCode)` * HTTPStatusCode:インスタンスから受信したステータスコード。 要求から予期しない応答が返されたときにスローされる * `cannotDecodeModel(DecodingError)` * DecodingError:デコードエラーが検出されました。 コード可能モデルを JSON からデコードできない場合にスローされます。 * `cannotDecodeProperty(type: Any, from: String)` * type:文字列からデコードするラップされた型。 * from:指定されたタイプにデコードする文字列。 文字列でラップされた値を JSON からデコードできない場合にスローされます。 * `cannotEncodeModel(EncodingError)` * EncodingError:エンコードエラーが検出されました。 コード可能モデルを JSON にエンコードできない場合にスローされます。 * `cannotParseResponse` インスタンスからの応答を想定される形式に解析できない場合にスローされます。 * `無効なURL` URL を形成できない場合にスローされます。たとえば、文字列に URL で無効な文字が含まれている場合や空の文字列である場合などです。 * `missingAttachmentMetadata` 添付ファイルのメタデータヘッダーがない場合にスローされます。 * `missingServiceConfiguration` 予期されたサービス構成がない場合にスローされます。 * `欠落している SysID` 予期されたsys_idパラメーターが欠落している場合にスローされます。 * `ネットワーク (NetworkServiceError)` * genericError(文字列) * operationCanceled * サービス無効 * serverError (エラー) * systemError (エラー) ネットワークサービスでエラーが発生したときにスローされます。 {#NTblServ-records_S_O__NowDataErroriOS-ul-enum} |
[表 : 48. 返される内容]

{#NTblServ-records_S_O__table_yvr_d1j_ppb}  
この例では、指定したテーブルから複数のレコードをフェッチする関数を作成する方法を示します。将来のある時点で要求が実行されるようにスケジュールし、ByteArray応答を返すオブジェクトを作成します。

    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?= nil, configuration: FetchConfiguration? = nil) 非同期スロー {#ariaid-title26}

指定されたテーブルの指定されたコード可能モデルを更新します。
{#NTblServ-update-async_S_S_S_O_O__table_n4q_3yk_spb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| モデル | モデル | テーブル内で更新する `SysIdentifiableModel` モデル。 |
| テーブル名内 | 文字列 | インシデントなど、レコードを書き込むテーブルの名前。 |
| コーダー | コーダー | オプション。ServiceNowインスタンスとの間で送受信されるデータをエンコードまたはデコードするために使用する`コーダー`。 可能な値： * default: デフォルトのエンコーダーは、デバイスの`ロケール`と`タイムゾーン`を使用して、`yyy-MM-dd HH:mm:ss` 形式を使用して日付を書式設定します。 * custom(JSONEncoder, JSONDecoder): `カスタム`コーダーを使用して、JSON のデコード/エンコードをよりきめ細かく制御します。 この列挙型は、特別な日付形式、タイムゾーン、ロケールを使用する場合など、独自の `JSONEncoder` と `JSONDecoder` を指定する場合にのみ使用してください。 let myEncoder = JSONEncoder() myEncoder.dateFormat = ... let myDecoder = JSONDecoder() myDecoder.dateFormat = ... let coder: Coder = .custom(myEncoder, myDecoder) {#NTblServ-update-async_S_S_S_O_O__ul_nx3_wrd_sqb} デフォルト:.default |
| writeOptions | [フィールド書き込みオプション](https://servicenow-prod.fluidtopics.net/KmMVLQ3mjoIFoEG1pVxVPQ#FieldWriteOptionsiOSStruct "FieldWriteOptions クラスは、ServiceNowインスタンスのレコードのフィールドを更新または作成するためのオプションを設定する関数を提供します。") | オプション。レコードに書き込まれるデータに適用する構成オプション。 デフォルト:nil |
| 構成 | [FetchConfiguration](https://servicenow-prod.fluidtopics.net/PfnYOhpdQCRiXGASneYU2A#FetchConfigiOSStructure "FetchConfiguration 構造体は、ServiceNow インスタンスからレコードをフェッチするための構成を定義する機能を提供します。") | オプション。返されるレコードを定義するフィルター、ページネーションページサイズ制限、取得するフィールド、フィールドに含める内容など、取得したレコードに適用する構成。 デフォルト:nil - すべてのレコードが返されます。 |
[表 : 49. パラメーター]

{#NTblServ-update-async_S_S_S_O_O__table_n4q_3yk_spb} {#NTblServ-update-async_S_S_S_O_O__table_o4q_3yk_spb__entry__2}

| タイプ | 説明 |
|-|-|
| モデル | メソッドが成功した場合に返されます。指定されたテーブルで更新されたデコード可能モデル。 |
| Now データエラー | メソッドが失敗したときにスローされます。 * `アクセストークン (AccessTokenProviderError)` * AccessTokenProviderError:アクセストークンプロバイダーのエラーコードまたはメッセージ。 * アクセストークンの取得に失敗しました * userSessionError(_ error: Error) アクセストークンにエラーがある場合にスローされます。 * `attachmentValidation` 添付ファイルの検証に失敗したときにスローされます。 * `badResponse(statusCode:HTTPStatusCode)` * HTTPStatusCode:インスタンスから受信したステータスコード。 要求から予期しない応答が返されたときにスローされる * `cannotDecodeModel(DecodingError)` * DecodingError:デコードエラーが検出されました。 コード可能モデルを JSON からデコードできない場合にスローされます。 * `cannotDecodeProperty(type: Any, from: String)` * type:文字列からデコードするラップされた型。 * from:指定されたタイプにデコードする文字列。 文字列でラップされた値を JSON からデコードできない場合にスローされます。 * `cannotEncodeModel(EncodingError)` * EncodingError:エンコードエラーが検出されました。 コード可能モデルを JSON にエンコードできない場合にスローされます。 * `cannotParseResponse` インスタンスからの応答を想定される形式に解析できない場合にスローされます。 * `無効なURL` URL を形成できない場合にスローされます。たとえば、文字列に URL で無効な文字が含まれている場合や空の文字列である場合などです。 * `missingAttachmentMetadata` 添付ファイルのメタデータヘッダーがない場合にスローされます。 * `missingServiceConfiguration` 予期されたサービス構成がない場合にスローされます。 * `欠落している SysID` 予期されたsys_idパラメーターが欠落している場合にスローされます。 * `ネットワーク (NetworkServiceError)` * genericError(文字列) * operationCanceled * サービス無効 * serverError (エラー) * systemError (エラー) ネットワークサービスでエラーが発生したときにスローされます。 {#NTblServ-update-async_S_S_S_O_O__NowDataErroriOS-ul-enum} |
[表 : 50. 返される内容]

{#NTblServ-update-async_S_S_S_O_O__table_o4q_3yk_spb}  
次のコード例は、このメソッドを呼び出す方法を示しています。

    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\>(_ model: Model, in tableName: String, coder: Coder = .default, writeOptions: FieldWriteOptions? = nil, configuration: FetchConfiguration? = nil, completion: @escaping (Result\<Model, NowDataError\>)) {#ariaid-title27}

指定されたテーブル内の指定されたコード可能モデルを更新してから、 completion ハンドラーを実行します。
{#NTblServ-update_S_S_S_O_O_O__table_nmv_vpr_spb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| モデル | モデル | テーブル内で更新する `SysIdentifiableModel` モデル。 |
| テーブル名内 | 文字列 | インシデントなど、レコードを書き込むテーブルの名前。 |
| コーダー | コーダー | オプション。ServiceNowインスタンスとの間で送受信されるデータをエンコードまたはデコードするために使用する`コーダー`。 可能な値： * default: デフォルトのエンコーダーは、デバイスの`ロケール`と`タイムゾーン`を使用して、`yyy-MM-dd HH:mm:ss` 形式を使用して日付を書式設定します。 * custom(JSONEncoder, JSONDecoder): `カスタム`コーダーを使用して、JSON のデコード/エンコードをよりきめ細かく制御します。 この列挙型は、特別な日付形式、タイムゾーン、ロケールを使用する場合など、独自の `JSONEncoder` と `JSONDecoder` を指定する場合にのみ使用してください。 let myEncoder = JSONEncoder() myEncoder.dateFormat = ... let myDecoder = JSONDecoder() myDecoder.dateFormat = ... let coder: Coder = .custom(myEncoder, myDecoder) {#NTblServ-update_S_S_S_O_O_O__ul_nx3_wrd_sqb} デフォルト:.default |
| writeOptions | [フィールド書き込みオプション](https://servicenow-prod.fluidtopics.net/KmMVLQ3mjoIFoEG1pVxVPQ#FieldWriteOptionsiOSStruct "FieldWriteOptions クラスは、ServiceNowインスタンスのレコードのフィールドを更新または作成するためのオプションを設定する関数を提供します。") | オプション。レコードに書き込まれるデータに適用する構成オプション。 デフォルト:nil |
| 構成 | [FetchConfiguration](https://servicenow-prod.fluidtopics.net/PfnYOhpdQCRiXGASneYU2A#FetchConfigiOSStructure "FetchConfiguration 構造体は、ServiceNow インスタンスからレコードをフェッチするための構成を定義する機能を提供します。") | オプション。返されるレコードを定義するフィルター、ページネーションページサイズ制限、取得するフィールド、フィールドに含める内容など、取得したレコードに適用する構成。 デフォルト:nil - すべてのレコードが返されます。 |
| 完了 | @escaping (結果\<モデル、NowDataError\>) | 指定されたコード可能モデルを更新した後に実行する補完ハンドラー。 戻り値: * 成功:モデル * 失敗:NowDataError * `アクセストークン (AccessTokenProviderError)` * AccessTokenProviderError:アクセストークンプロバイダーのエラーコードまたはメッセージ。 * アクセストークンの取得に失敗しました * userSessionError(_ error: Error) アクセストークンにエラーがある場合にスローされます。 * `attachmentValidation` 添付ファイルの検証に失敗したときにスローされます。 * `badResponse(statusCode:HTTPStatusCode)` * HTTPStatusCode:インスタンスから受信したステータスコード。 要求から予期しない応答が返されたときにスローされる * `cannotDecodeModel(DecodingError)` * DecodingError:デコードエラーが検出されました。 コード可能モデルを JSON からデコードできない場合にスローされます。 * `cannotDecodeProperty(type: Any, from: String)` * type:文字列からデコードするラップされた型。 * from:指定されたタイプにデコードする文字列。 文字列でラップされた値を JSON からデコードできない場合にスローされます。 * `cannotEncodeModel(EncodingError)` * EncodingError:エンコードエラーが検出されました。 コード可能モデルを JSON にエンコードできない場合にスローされます。 * `cannotParseResponse` インスタンスからの応答を想定される形式に解析できない場合にスローされます。 * `無効なURL` URL を形成できない場合にスローされます。たとえば、文字列に URL で無効な文字が含まれている場合や空の文字列である場合などです。 * `missingAttachmentMetadata` 添付ファイルのメタデータヘッダーがない場合にスローされます。 * `missingServiceConfiguration` 予期されたサービス構成がない場合にスローされます。 * `欠落している SysID` 予期されたsys_idパラメーターが欠落している場合にスローされます。 * `ネットワーク (NetworkServiceError)` * genericError(文字列) * operationCanceled * サービス無効 * serverError (エラー) * systemError (エラー) ネットワークサービスでエラーが発生したときにスローされます。 {#NTblServ-update_S_S_S_O_O_O__NowDataErroriOS-ul-enum} {#NTblServ-update_S_S_S_O_O_O__ul_dpx_jvk_spb} |
[表 : 51. パラメーター]

{#NTblServ-update_S_S_S_O_O_O__table_nmv_vpr_spb} {#NTblServ-update_S_S_S_O_O_O__table_omv_vpr_spb__entry__2}

| タイプ | 説明 |
|-|-|
| なし |   |
[表 : 52. 返される内容]

{#NTblServ-update_S_S_S_O_O_O__table_omv_vpr_spb}  
次のコード例は、このメソッドを呼び出す方法を示しています。

    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: Model, in tableName: String, coder: Coder = .default, writeOptions: FieldWriteOptions? = nil, configuration: FetchConfiguration? = nil) {#ariaid-title28}

指定されたテーブルの指定されたコード可能モデルを更新します。
注:  
このメソッドは廃止されました。代わりに、メソッドの async/await 実装を使用する必要があります。
{#NTblServ-update_S_S_S_O_O__table_n4q_3yk_spb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| モデル | モデル | テーブル内で更新する `SysIdentifiableModel` モデル。 |
| テーブル名内 | 文字列 | インシデントなど、レコードを書き込むテーブルの名前。 |
| コーダー | コーダー | オプション。ServiceNowインスタンスとの間で送受信されるデータをエンコードまたはデコードするために使用する`コーダー`。 可能な値： * default: デフォルトのエンコーダーは、デバイスの`ロケール`と`タイムゾーン`を使用して、`yyy-MM-dd HH:mm:ss` 形式を使用して日付を書式設定します。 * custom(JSONEncoder, JSONDecoder): `カスタム`コーダーを使用して、JSON のデコード/エンコードをよりきめ細かく制御します。 この列挙型は、特別な日付形式、タイムゾーン、ロケールを使用する場合など、独自の `JSONEncoder` と `JSONDecoder` を指定する場合にのみ使用してください。 let myEncoder = JSONEncoder() myEncoder.dateFormat = ... let myDecoder = JSONDecoder() myDecoder.dateFormat = ... let coder: Coder = .custom(myEncoder, myDecoder) {#NTblServ-update_S_S_S_O_O__ul_nx3_wrd_sqb} デフォルト:.default |
| writeOptions | [フィールド書き込みオプション](https://servicenow-prod.fluidtopics.net/KmMVLQ3mjoIFoEG1pVxVPQ#FieldWriteOptionsiOSStruct "FieldWriteOptions クラスは、ServiceNowインスタンスのレコードのフィールドを更新または作成するためのオプションを設定する関数を提供します。") | オプション。レコードに書き込まれるデータに適用する構成オプション。 デフォルト:nil |
| 構成 | [FetchConfiguration](https://servicenow-prod.fluidtopics.net/PfnYOhpdQCRiXGASneYU2A#FetchConfigiOSStructure "FetchConfiguration 構造体は、ServiceNow インスタンスからレコードをフェッチするための構成を定義する機能を提供します。") | オプション。返されるレコードを定義するフィルター、ページネーションページサイズ制限、取得するフィールド、フィールドに含める内容など、取得したレコードに適用する構成。 デフォルト:nil - すべてのレコードが返されます。 |
[表 : 53. パラメーター]

{#NTblServ-update_S_S_S_O_O__table_n4q_3yk_spb} {#NTblServ-update_S_S_S_O_O__table_o4q_3yk_spb__entry__2}

| タイプ | 説明 |
|-|-|
| AnyPublisher\<Model、NowDataError\> | 成功:指定されたテーブルで更新されたデコード可能なモデル。 失敗:NowDataError * `アクセストークン (AccessTokenProviderError)` * AccessTokenProviderError:アクセストークンプロバイダーのエラーコードまたはメッセージ。 * アクセストークンの取得に失敗しました * userSessionError(_ error: Error) アクセストークンにエラーがある場合にスローされます。 * `attachmentValidation` 添付ファイルの検証に失敗したときにスローされます。 * `badResponse(statusCode:HTTPStatusCode)` * HTTPStatusCode:インスタンスから受信したステータスコード。 要求から予期しない応答が返されたときにスローされる * `cannotDecodeModel(DecodingError)` * DecodingError:デコードエラーが検出されました。 コード可能モデルを JSON からデコードできない場合にスローされます。 * `cannotDecodeProperty(type: Any, from: String)` * type:文字列からデコードするラップされた型。 * from:指定されたタイプにデコードする文字列。 文字列でラップされた値を JSON からデコードできない場合にスローされます。 * `cannotEncodeModel(EncodingError)` * EncodingError:エンコードエラーが検出されました。 コード可能モデルを JSON にエンコードできない場合にスローされます。 * `cannotParseResponse` インスタンスからの応答を想定される形式に解析できない場合にスローされます。 * `無効なURL` URL を形成できない場合にスローされます。たとえば、文字列に URL で無効な文字が含まれている場合や空の文字列である場合などです。 * `missingAttachmentMetadata` 添付ファイルのメタデータヘッダーがない場合にスローされます。 * `missingServiceConfiguration` 予期されたサービス構成がない場合にスローされます。 * `欠落している SysID` 予期されたsys_idパラメーターが欠落している場合にスローされます。 * `ネットワーク (NetworkServiceError)` * genericError(文字列) * operationCanceled * サービス無効 * serverError (エラー) * systemError (エラー) ネットワークサービスでエラーが発生したときにスローされます。 {#NTblServ-update_S_S_S_O_O__NowDataErroriOS-ul-enum} |
[表 : 54. 返される内容]

{#NTblServ-update_S_S_S_O_O__table_o4q_3yk_spb}  
次のコード例は、このメソッドを呼び出す方法を示しています。

    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) 非同期スロー {#ariaid-title29}

指定されたレコードを指定されたフィールドで更新します。
データをカスタム [Codable モデル](https://developer.apple.com/documentation/foundation/archives_and_serialization/encoding_and_decoding_custom_types)にデコードすることも、 [NowTableService - paginator\<Model: Decodable\>(from tableName: String, path: String = Constants.resultPath, coder: Coder = .default, configuration: FetchConfiguration? = nil)](https://servicenow-prod.fluidtopics.net/XD4wjFuPLG8IbOwCT0Ue1Q#NTblServ-paginator_S_S_S_O "ネストを処理するデコードされたモデルのページの反復を可能にするページネーターを作成します。") 関数を使用することもできます。 または、コンビニエンス関数 convertToRecords() を使用して、データを NowRecord オブジェクトに変換することもできます。NowRecords を発行するようにパブリッシャーを変換する方法を次に示します。

    let dataPublisher: AnyPublisher<Data, NowDataError> = ...
    let recordsPublisher: AnyPublisher<[NowRecord], NowDataError> = myPublisher.convertToRecords()

注:  
レコード内の一部のフィールドは、更新できない場合があります。たとえば、プリフィックスが `sys_` のフィールドは、通常、自動的に生成され、更新できないシステムパラメーターです。指定されておらず、システムによって自動生成されなかったフィールドは、関連付けられたデータタイプの null 値に設定されます。
{#NTblServ-updateRecord-async_S_A_O_O__table_cjl_5sj_ppb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| sysId | 文字列 | ServiceNowインスタンスから返されるレコードのSys_id。 |
| フィールドあり | \[フィールド名:フィールド値\] | レコードに含めるフィールドの名前と値のペア。 |
| テーブル名内 | 文字列 | インシデントなど、レコードを書き込むテーブルの名前。 |
| writeOptions | [フィールド書き込みオプション](https://servicenow-prod.fluidtopics.net/KmMVLQ3mjoIFoEG1pVxVPQ#FieldWriteOptionsiOSStruct "FieldWriteOptions クラスは、ServiceNowインスタンスのレコードのフィールドを更新または作成するためのオプションを設定する関数を提供します。") | オプション。レコードに書き込まれるデータに適用する構成オプション。 デフォルト:nil |
| 構成 | [FetchConfiguration](https://servicenow-prod.fluidtopics.net/PfnYOhpdQCRiXGASneYU2A#FetchConfigiOSStructure "FetchConfiguration 構造体は、ServiceNow インスタンスからレコードをフェッチするための構成を定義する機能を提供します。") | オプション。返されるレコードを定義するフィルター、ページネーションページサイズ制限、取得するフィールド、フィールドに含める内容など、取得したレコードに適用する構成。 デフォルト:nil - すべてのレコードが返されます。 |
[表 : 55. パラメーター]

{#NTblServ-updateRecord-async_S_A_O_O__table_cjl_5sj_ppb} {#NTblServ-updateRecord-async_S_A_O_O__table_djl_5sj_ppb__entry__2}

| タイプ | 説明 |
|-|-|
| データ | メソッドが成功した場合に返されます。更新されたレコードを含むデータオブジェクト。 |
| Now データエラー | メソッドが失敗したときにスローされます。 * `アクセストークン (AccessTokenProviderError)` * AccessTokenProviderError:アクセストークンプロバイダーのエラーコードまたはメッセージ。 * アクセストークンの取得に失敗しました * userSessionError(_ error: Error) アクセストークンにエラーがある場合にスローされます。 * `attachmentValidation` 添付ファイルの検証に失敗したときにスローされます。 * `badResponse(statusCode:HTTPStatusCode)` * HTTPStatusCode:インスタンスから受信したステータスコード。 要求から予期しない応答が返されたときにスローされる * `cannotDecodeModel(DecodingError)` * DecodingError:デコードエラーが検出されました。 コード可能モデルを JSON からデコードできない場合にスローされます。 * `cannotDecodeProperty(type: Any, from: String)` * type:文字列からデコードするラップされた型。 * from:指定されたタイプにデコードする文字列。 文字列でラップされた値を JSON からデコードできない場合にスローされます。 * `cannotEncodeModel(EncodingError)` * EncodingError:エンコードエラーが検出されました。 コード可能モデルを JSON にエンコードできない場合にスローされます。 * `cannotParseResponse` インスタンスからの応答を想定される形式に解析できない場合にスローされます。 * `無効なURL` URL を形成できない場合にスローされます。たとえば、文字列に URL で無効な文字が含まれている場合や空の文字列である場合などです。 * `missingAttachmentMetadata` 添付ファイルのメタデータヘッダーがない場合にスローされます。 * `missingServiceConfiguration` 予期されたサービス構成がない場合にスローされます。 * `欠落している SysID` 予期されたsys_idパラメーターが欠落している場合にスローされます。 * `ネットワーク (NetworkServiceError)` * genericError(文字列) * operationCanceled * サービス無効 * serverError (エラー) * systemError (エラー) ネットワークサービスでエラーが発生したときにスローされます。 {#NTblServ-updateRecord-async_S_A_O_O__NowDataErroriOS-ul-enum} |
[表 : 56. 返される内容]

{#NTblServ-updateRecord-async_S_A_O_O__table_djl_5sj_ppb}  
次のコード例は、このメソッドを呼び出す方法を示しています。

    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: String, with fields: \[FieldName: FieldValue\], writeOptions: FieldWriteOptions? = nil, configuration: FieldReadConfiguration? = nil, completion: @escaping (Result\<Data, NowDataError\>) {#ariaid-title30}

指定されたレコードを指定されたフィールドで更新し、レコードが保存されたら completion ハンドラーを実行します。
必要に応じて、返された結果をカスタム Codable モデルにデコードするか、代わりに [NowTableService - paginator\<Model: Decodable\>(from tableName: String, path: String = Constants.resultPath, coder: Coder = .default, configuration: FetchConfiguration? = nil)](https://servicenow-prod.fluidtopics.net/XD4wjFuPLG8IbOwCT0Ue1Q#NTblServ-paginator_S_S_S_O "ネストを処理するデコードされたモデルのページの反復を可能にするページネーターを作成します。") 関数を使用できます。 または、コンビニエンス関数 convertToRecords() を使用して、データを NowRecord オブジェクトに変換することもできます。NowRecords を発行するようにパブリッシャーを変換する方法を次に示します。

    let dataPublisher: AnyPublisher<Data, NowDataError> = ...
    let recordsPublisher: AnyPublisher<[NowRecord], NowDataError> = myResult.convertToRecords()

注:  
レコード内の一部のフィールドは、更新できない場合があります。たとえば、プリフィックスが `sys_` のフィールドは、通常、自動的に生成され、更新できないシステムパラメーターです。指定されておらず、システムによって自動生成されなかったフィールドは、関連付けられたデータタイプの null 値に設定されます。
{#NTblServ-updateRecord_S_A_O_O_O__table_jq5_ttj_ppb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| sysId | 文字列 | ServiceNowインスタンスから返されるレコードのSys_id。 |
| フィールドあり | \[フィールド名:フィールド値\] | レコードに含めるフィールドの名前と値のペア。 |
| テーブル名内 | 文字列 | インシデントなど、レコードを書き込むテーブルの名前。 |
| writeOptions | [フィールド書き込みオプション](https://servicenow-prod.fluidtopics.net/KmMVLQ3mjoIFoEG1pVxVPQ#FieldWriteOptionsiOSStruct "FieldWriteOptions クラスは、ServiceNowインスタンスのレコードのフィールドを更新または作成するためのオプションを設定する関数を提供します。") | オプション。レコードに書き込まれるデータに適用する構成オプション。 デフォルト:nil |
| 構成 | [FetchConfiguration](https://servicenow-prod.fluidtopics.net/PfnYOhpdQCRiXGASneYU2A#FetchConfigiOSStructure "FetchConfiguration 構造体は、ServiceNow インスタンスからレコードをフェッチするための構成を定義する機能を提供します。") | オプション。返されるレコードを定義するフィルター、ページネーションページサイズ制限、取得するフィールド、フィールドに含める内容など、取得したレコードに適用する構成。 デフォルト:nil - すべてのレコードが返されます。 |
| 完了 | @escaping (結果\<データ、NowDataError\>) | レコードが取得された後に実行する補完ハンドラー。 戻り値: * 成功:データ:要求されたレコード * エラー:NowDataError * `アクセストークン (AccessTokenProviderError)` * AccessTokenProviderError:アクセストークンプロバイダーのエラーコードまたはメッセージ。 * アクセストークンの取得に失敗しました * userSessionError(_ error: Error) アクセストークンにエラーがある場合にスローされます。 * `attachmentValidation` 添付ファイルの検証に失敗したときにスローされます。 * `badResponse(statusCode:HTTPStatusCode)` * HTTPStatusCode:インスタンスから受信したステータスコード。 要求から予期しない応答が返されたときにスローされる * `cannotDecodeModel(DecodingError)` * DecodingError:デコードエラーが検出されました。 コード可能モデルを JSON からデコードできない場合にスローされます。 * `cannotDecodeProperty(type: Any, from: String)` * type:文字列からデコードするラップされた型。 * from:指定されたタイプにデコードする文字列。 文字列でラップされた値を JSON からデコードできない場合にスローされます。 * `cannotEncodeModel(EncodingError)` * EncodingError:エンコードエラーが検出されました。 コード可能モデルを JSON にエンコードできない場合にスローされます。 * `cannotParseResponse` インスタンスからの応答を想定される形式に解析できない場合にスローされます。 * `無効なURL` URL を形成できない場合にスローされます。たとえば、文字列に URL で無効な文字が含まれている場合や空の文字列である場合などです。 * `missingAttachmentMetadata` 添付ファイルのメタデータヘッダーがない場合にスローされます。 * `missingServiceConfiguration` 予期されたサービス構成がない場合にスローされます。 * `欠落している SysID` 予期されたsys_idパラメーターが欠落している場合にスローされます。 * `ネットワーク (NetworkServiceError)` * genericError(文字列) * operationCanceled * サービス無効 * serverError (エラー) * systemError (エラー) ネットワークサービスでエラーが発生したときにスローされます。 {#NTblServ-updateRecord_S_A_O_O_O__NowDataErroriOS-ul-enum} {#NTblServ-updateRecord_S_A_O_O_O__ul_uzx_thj_ppb} |
[表 : 57. パラメーター]

{#NTblServ-updateRecord_S_A_O_O_O__table_jq5_ttj_ppb} {#NTblServ-updateRecord_S_A_O_O_O__table_kq5_ttj_ppb__entry__2}

| タイプ | 説明 |
|-|-|
| なし |   |
[表 : 58. 返される内容]

{#NTblServ-updateRecord_S_A_O_O_O__table_kq5_ttj_ppb}  
次のコード例は、このメソッドを呼び出す方法を示しています。

    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: String, withfields: \[FieldName: FieldValue\], writeOptions: FieldWriteOptions? = nil, configuration: FieldReadConfiguration? = nil) {#ariaid-title31}

指定されたレコードを指定されたフィールドで更新します。
注:  
このメソッドは廃止されました。代わりに、メソッドの async/await 実装を使用する必要があります。  
パブリッシャーは、カスタム [Codable モデル](https://developer.apple.com/documentation/foundation/archives_and_serialization/encoding_and_decoding_custom_types)にデコードできるデータを出力するか、 [NowTableService - paginator\<Model: Decodable\>(from tableName: String, path: String = Constants.resultPath, coder: Coder = .default, configuration: FetchConfiguration? = nil)](https://servicenow-prod.fluidtopics.net/XD4wjFuPLG8IbOwCT0Ue1Q#NTblServ-paginator_S_S_S_O "ネストを処理するデコードされたモデルのページの反復を可能にするページネーターを作成します。") 関数を使用することもできます。 または、コンビニエンス関数 convertToRecords() を使用して、データを NowRecord オブジェクトに変換することもできます。NowRecords を発行するようにパブリッシャーを変換する方法を次に示します。。

    let dataPublisher: AnyPublisher<Data, NowDataError> = ...
    let recordsPublisher: AnyPublisher<[NowRecord], NowDataError> = myPublisher.convertToRecords()

注:  
レコード内の一部のフィールドは、更新できない場合があります。たとえば、プリフィックスが `sys_` のフィールドは、通常、自動的に生成され、更新できないシステムパラメーターです。指定されておらず、システムによって自動生成されなかったフィールドは、関連付けられたデータタイプの null 値に設定されます。
{#NTblServ-updateRecord_S_A_O_O__table_cjl_5sj_ppb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| sysId | 文字列 | ServiceNowインスタンスから返されるレコードのSys_id。 |
| フィールドあり | \[フィールド名:フィールド値\] | レコードに含めるフィールドの名前と値のペア。 |
| テーブル名内 | 文字列 | インシデントなど、レコードを書き込むテーブルの名前。 |
| writeOptions | [フィールド書き込みオプション](https://servicenow-prod.fluidtopics.net/KmMVLQ3mjoIFoEG1pVxVPQ#FieldWriteOptionsiOSStruct "FieldWriteOptions クラスは、ServiceNowインスタンスのレコードのフィールドを更新または作成するためのオプションを設定する関数を提供します。") | オプション。レコードに書き込まれるデータに適用する構成オプション。 デフォルト:nil |
| 構成 | [FetchConfiguration](https://servicenow-prod.fluidtopics.net/PfnYOhpdQCRiXGASneYU2A#FetchConfigiOSStructure "FetchConfiguration 構造体は、ServiceNow インスタンスからレコードをフェッチするための構成を定義する機能を提供します。") | オプション。返されるレコードを定義するフィルター、ページネーションページサイズ制限、取得するフィールド、フィールドに含める内容など、取得したレコードに適用する構成。 デフォルト:nil - すべてのレコードが返されます。 |
[表 : 59. パラメーター]

{#NTblServ-updateRecord_S_A_O_O__table_cjl_5sj_ppb} {#NTblServ-updateRecord_S_A_O_O__table_djl_5sj_ppb__entry__2}

| タイプ | 説明 |
|-|-|
| AnyPublisher\<Data、NowDataError\> | 成功:更新されたレコードを含むデータオブジェクト。 失敗:NowDataError * `アクセストークン (AccessTokenProviderError)` * AccessTokenProviderError:アクセストークンプロバイダーのエラーコードまたはメッセージ。 * アクセストークンの取得に失敗しました * userSessionError(_ error: Error) アクセストークンにエラーがある場合にスローされます。 * `attachmentValidation` 添付ファイルの検証に失敗したときにスローされます。 * `badResponse(statusCode:HTTPStatusCode)` * HTTPStatusCode:インスタンスから受信したステータスコード。 要求から予期しない応答が返されたときにスローされる * `cannotDecodeModel(DecodingError)` * DecodingError:デコードエラーが検出されました。 コード可能モデルを JSON からデコードできない場合にスローされます。 * `cannotDecodeProperty(type: Any, from: String)` * type:文字列からデコードするラップされた型。 * from:指定されたタイプにデコードする文字列。 文字列でラップされた値を JSON からデコードできない場合にスローされます。 * `cannotEncodeModel(EncodingError)` * EncodingError:エンコードエラーが検出されました。 コード可能モデルを JSON にエンコードできない場合にスローされます。 * `cannotParseResponse` インスタンスからの応答を想定される形式に解析できない場合にスローされます。 * `無効なURL` URL を形成できない場合にスローされます。たとえば、文字列に URL で無効な文字が含まれている場合や空の文字列である場合などです。 * `missingAttachmentMetadata` 添付ファイルのメタデータヘッダーがない場合にスローされます。 * `missingServiceConfiguration` 予期されたサービス構成がない場合にスローされます。 * `欠落している SysID` 予期されたsys_idパラメーターが欠落している場合にスローされます。 * `ネットワーク (NetworkServiceError)` * genericError(文字列) * operationCanceled * サービス無効 * serverError (エラー) * systemError (エラー) ネットワークサービスでエラーが発生したときにスローされます。 {#NTblServ-updateRecord_S_A_O_O__NowDataErroriOS-ul-enum} |
[表 : 60. 返される内容]

{#NTblServ-updateRecord_S_A_O_O__table_djl_5sj_ppb}  
この例では、指定したテーブルのレコードを指定したフィールドで更新する機能を作成する方法を示します。呼び出しの出力は ByteArray で、データを任意のモデルに変換できます。

    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)


