NowTableService クラス:iOS

  • リリースバージョン: Washingtondc
  • 更新日 2024年02月01日
  • 読む142読むのに数分
  • NowTableService クラスには、既存のServiceNowテーブルのレコードに対して作成、読み取り、更新、および削除の操作を実行できるようにする関数が用意されています。

    表 : 1. プロパティ
    名前 タイプ 説明
    構成 NowServiceConfiguration サービスの初期化時に提供された構成設定。

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

    指定された Codable モデルを指定されたテーブルに挿入します。

    モデルで新しいレコードを作成するには、モデルは SysIdentifiableModel プロトコルに準拠している必要があります。通常、各テーブルには独自のモデルがあります。

    モデルの sys_Id パラメーターはプラットフォームによって生成されるため sysIdServiceNow 作成中に無視されます。生成されたプラットフォームは、completionハンドラーの結果モデルで返されます。sys_IdServiceNow

    表 : 2. パラメーター
    名前 タイプ 説明
    モデル SysIdentififiable Model テーブルに挿入するフィールドのモデル定義。
    テーブル名の内 文字列 レコードを書き込むテーブルの名前 ( インシデントなど)。
    コーダー コーダー オプション。インスタンスとの間でServiceNow送受信されるデータのエンコードまたはデコードに使用するコーダー
    可能な値:
    • default:デフォルトのエンコーダーは、デバイスのロケールタイムゾーンを使用して yyy-MM-dd HH:mm:ss 形式を使用して日付を書式設定します。
    • custom(JSONEncoder, JSONDecoder):

      カスタムコーダーを使用して、JSON のデコード/エンコードをよりきめ細かく制御します。

      この列挙体は、特別な日付形式、タイム ゾーン、ロケールを使用する場合など、独自の JSONEncoderJSONDecoder を提供する場合にのみ使用します。

      let myEncoder = JSONEncoder()
      myEncoder.dateFormat = …
      let myDecoder = JSONDecoder()
      myDecoder.dateFormat = …
      let coder: Coder = .custom(myEncoder, myDecoder)

    デフォルト:.default

    書き込みオプション フィールド書き込みオプション オプション。レコードに書き込まれるデータに適用する構成オプション。

    デフォルト:nil

    構成 フェッチ構成 オプション。返されるレコードを定義するフィルター、ページネーションページサイズ制限、取得するフィールド、フィールドに含める内容など、取得されたレコードに適用する構成。

    デフォルト:nil - すべてのレコードが返されます。

    表 : 3. 返される内容
    タイプ 説明
    モデル メソッドが成功した場合に返されます。sys_Idを含む、指定されたテーブルに挿入されたコード化可能なモデル。このsys_idを使用して、今後のメソッド呼び出しでこのレコードを参照します。
    NowDataError メソッドが失敗したときにスローされます。
    • accessToken(AccessTokenProviderError)
      • AccessTokenProviderError:アクセストークンプロバイダーのエラーコードまたはメッセージ。
        • accessTokenRetrievalFailed
        • userSessionError(_ error: Error)

      アクセストークンにエラーがある場合にスローされます。

    • attachment検証

      添付ファイルが検証に失敗した場合にスローされます。

    • badResponse(statusCode: HTTPStatusCode)
      • HTTPStatusCode:インスタンスから受信したステータスコード。

      要求が予期しない応答を返すとスローされます

    • cannotDecodeModel(DecodeError)
      • DecodingError:デコードエラーが検出されました。

      コード可能なモデルを JSON からデコードできない場合にスローされます。

    • cannotDecodeProperty(タイプ: 任意, 送信元: 文字列)
      • type:文字列からデコードするラップされたタイプ。
      • from:指定された型にデコードする文字列。

      文字列でラップされた値を JSON からデコードできない場合にスローされます。

    • cannotEncodeModel(EncodingError)
      • EncodingError:エンコードエラーが検出されました。

      Codable モデルを JSON にエンコードできない場合にスローされます。

    • cannotParseResponse

      インスタンスからの応答を予期される形式に解析できない場合にスローされます。

    • 無効な URL

      URL を形成できない場合にスローされます。たとえば、文字列に URL で無効な文字が含まれている場合や、空の文字列である場合などです。

    • 欠損添付ファイルメタデータ

      添付ファイルのメタデータヘッダーがない場合にスローされます。

    • missingServiceConfiguration

      予期されるサービス構成がない場合にスローされます。

    • 欠損 SysID

      予期される sys_id パラメーターがない場合にスローされます。

    • network(NetworkServiceError)
      • genericError(文字列)
      • 操作がキャンセルされました
      • サービス無効
      • serverError(エラー)
      • システムエラー (エラー)

      ネットワーク サービスでエラーが発生したときにスローされます。

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

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

    指定された 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):
          ...
      }
    }

    モデルの sys_Id パラメーターはプラットフォームによって生成されるため sysIdServiceNow 作成中に無視されます。生成されたプラットフォームは、completionハンドラーの結果モデルで返されます。sys_IdServiceNow

    表 : 4. パラメーター
    名前 タイプ 説明
    モデル SysIdentififiable Model テーブルに挿入するフィールドのモデル定義。
    テーブル名の内 文字列 レコードを書き込むテーブルの名前 ( インシデントなど)。
    コーダー コーダー オプション。インスタンスとの間でServiceNow送受信されるデータのエンコードまたはデコードに使用するコーダー
    可能な値:
    • default:デフォルトのエンコーダーは、デバイスのロケールタイムゾーンを使用して yyy-MM-dd HH:mm:ss 形式を使用して日付を書式設定します。
    • custom(JSONEncoder, JSONDecoder):

      カスタムコーダーを使用して、JSON のデコード/エンコードをよりきめ細かく制御します。

      この列挙体は、特別な日付形式、タイム ゾーン、ロケールを使用する場合など、独自の JSONEncoderJSONDecoder を提供する場合にのみ使用します。

      let myEncoder = JSONEncoder()
      myEncoder.dateFormat = …
      let myDecoder = JSONDecoder()
      myDecoder.dateFormat = …
      let coder: Coder = .custom(myEncoder, myDecoder)

    デフォルト:.default

    書き込みオプション フィールド書き込みオプション オプション。レコードに書き込まれるデータに適用する構成オプション。

    デフォルト:nil

    構成 フェッチ構成 オプション。返されるレコードを定義するフィルター、ページネーションページサイズ制限、取得するフィールド、フィールドに含める内容など、取得されたレコードに適用する構成。

    デフォルト:nil - すべてのレコードが返されます。

    完了 @escaping (result<model, nowDataError>) 指定されたデコード可能モデルを作成した後に実行する完了ハンドラー。
    完了ハンドラーの値を返します。
    • 成功:モデル - 作成されたモデルタイプのデータ。
    • エラー:NowDataError
      • accessToken(AccessTokenProviderError)
        • AccessTokenProviderError:アクセストークンプロバイダーのエラーコードまたはメッセージ。
          • accessTokenRetrievalFailed
          • userSessionError(_ error: Error)

        アクセストークンにエラーがある場合にスローされます。

      • attachment検証

        添付ファイルが検証に失敗した場合にスローされます。

      • badResponse(statusCode: HTTPStatusCode)
        • HTTPStatusCode:インスタンスから受信したステータスコード。

        要求が予期しない応答を返すとスローされます

      • cannotDecodeModel(DecodeError)
        • DecodingError:デコードエラーが検出されました。

        コード可能なモデルを JSON からデコードできない場合にスローされます。

      • cannotDecodeProperty(タイプ: 任意, 送信元: 文字列)
        • type:文字列からデコードするラップされたタイプ。
        • from:指定された型にデコードする文字列。

        文字列でラップされた値を JSON からデコードできない場合にスローされます。

      • cannotEncodeModel(EncodingError)
        • EncodingError:エンコードエラーが検出されました。

        Codable モデルを JSON にエンコードできない場合にスローされます。

      • cannotParseResponse

        インスタンスからの応答を予期される形式に解析できない場合にスローされます。

      • 無効な URL

        URL を形成できない場合にスローされます。たとえば、文字列に URL で無効な文字が含まれている場合や、空の文字列である場合などです。

      • 欠損添付ファイルメタデータ

        添付ファイルのメタデータヘッダーがない場合にスローされます。

      • missingServiceConfiguration

        予期されるサービス構成がない場合にスローされます。

      • 欠損 SysID

        予期される sys_id パラメーターがない場合にスローされます。

      • network(NetworkServiceError)
        • genericError(文字列)
        • 操作がキャンセルされました
        • サービス無効
        • serverError(エラー)
        • システムエラー (エラー)

        ネットワーク サービスでエラーが発生したときにスローされます。

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

    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)

    指定されたテーブルに 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はプラットフォームによって割り当てられますServiceNowServiceNow生成されたsys_Idプラットフォームは、パブリッシャーの receiveValue コールバックモデルで返されます。
    表 : 6. パラメーター
    名前 タイプ 説明
    モデル SysIdentififiable Model テーブルに挿入する SysIdentififiableModel モデル。
    テーブル名の内 文字列 レコードを書き込むテーブルの名前 ( インシデントなど)。
    path 文字列 オプション。入れ子になった型のドット区切りパス。たとえば、 result または foo.bar.baz を指定すると、より詳細なネストができます。

    デフォルト: Constants.resultPath

    コーダー コーダー オプション。インスタンスとの間でServiceNow送受信されるデータのエンコードまたはデコードに使用するコーダー
    可能な値:
    • default:デフォルトのエンコーダーは、デバイスのロケールタイムゾーンを使用して yyy-MM-dd HH:mm:ss 形式を使用して日付を書式設定します。
    • custom(JSONEncoder, JSONDecoder):

      カスタムコーダーを使用して、JSON のデコード/エンコードをよりきめ細かく制御します。

      この列挙体は、特別な日付形式、タイム ゾーン、ロケールを使用する場合など、独自の JSONEncoderJSONDecoder を提供する場合にのみ使用します。

      let myEncoder = JSONEncoder()
      myEncoder.dateFormat = …
      let myDecoder = JSONDecoder()
      myDecoder.dateFormat = …
      let coder: Coder = .custom(myEncoder, myDecoder)

    デフォルト:.default

    書き込みオプション フィールド書き込みオプション オプション。レコードに書き込まれるデータに適用する構成オプション。

    デフォルト:nil

    構成 フェッチ構成 オプション。返されるレコードを定義するフィルター、ページネーションページサイズ制限、取得するフィールド、フィールドに含める内容など、取得されたレコードに適用する構成。

    デフォルト:nil - すべてのレコードが返されます。

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

    エラー:NowDataError

    @escaping (result<model, nowDataError>)

    ユーザー [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(withfields: [FieldName: FieldValue], in tableName: String, writeOptions: FieldWriteOptions? = nil, configuration: FieldReadConfiguration? = nil) 非同期スロー

    指定されたテーブルに、指定されたフィールドを含むレコードを挿入します。

    - パブリッシャーは、カスタム のCodableモデルにデコードできるデータを出力するか、関数を使用することもできます NowTableService - paginator&lt;Model: Decodable>(from tableName: String, path: String = Constants.resultPath, coder: Coder = .default, configuration: FetchConfiguration? = nil) または、便利な関数 convertToRecords() を使用して、データを NowRecord オブジェクトに変換することもできます。NowRecords を出力するようにパブリッシャーを変換する方法を次に示します。
    let dataPublisher: AnyPublisher<Data, NowDataError> = ...
    let recordsPublisher: AnyPublisher<[NowRecord], NowDataError> = myPublisher.convertToRecords()
    注:
    レコード内のすべてのフィールドは更新できない場合があります。たとえば、 プリフィックス sys_ を持つフィールドは、通常、自動的に生成されるシステムパラメーターであり、更新することはできません。指定されておらず、システムによって自動生成されないフィールドは、関連付けられたデータタイプの null 値に設定されます。
    表 : 8. パラメーター
    名前 タイプ 説明
    フィールドあり [フィールド名: フィールド値] レコードに含めるフィールドの名前と値のペア。
    テーブル名の内 文字列 レコードを書き込むテーブルの名前 ( インシデントなど)。
    書き込みオプション フィールド書き込みオプション オプション。レコードに書き込まれるデータに適用する構成オプション。

    デフォルト:nil

    構成 フェッチ構成 オプション。返されるレコードを定義するフィルター、ページネーションページサイズ制限、取得するフィールド、フィールドに含める内容など、取得されたレコードに適用する構成。

    デフォルト:nil - すべてのレコードが返されます。

    表 : 9. 返される内容
    タイプ 説明
    データ メソッドが成功した場合に返されます。新しいレコードを含むデータオブジェクト。
    NowDataError メソッドが失敗したときにスローされます。
    • accessToken(AccessTokenProviderError)
      • AccessTokenProviderError:アクセストークンプロバイダーのエラーコードまたはメッセージ。
        • accessTokenRetrievalFailed
        • userSessionError(_ error: Error)

      アクセストークンにエラーがある場合にスローされます。

    • attachment検証

      添付ファイルが検証に失敗した場合にスローされます。

    • badResponse(statusCode: HTTPStatusCode)
      • HTTPStatusCode:インスタンスから受信したステータスコード。

      要求が予期しない応答を返すとスローされます

    • cannotDecodeModel(DecodeError)
      • DecodingError:デコードエラーが検出されました。

      コード可能なモデルを JSON からデコードできない場合にスローされます。

    • cannotDecodeProperty(タイプ: 任意, 送信元: 文字列)
      • type:文字列からデコードするラップされたタイプ。
      • from:指定された型にデコードする文字列。

      文字列でラップされた値を JSON からデコードできない場合にスローされます。

    • cannotEncodeModel(EncodingError)
      • EncodingError:エンコードエラーが検出されました。

      Codable モデルを JSON にエンコードできない場合にスローされます。

    • cannotParseResponse

      インスタンスからの応答を予期される形式に解析できない場合にスローされます。

    • 無効な URL

      URL を形成できない場合にスローされます。たとえば、文字列に URL で無効な文字が含まれている場合や、空の文字列である場合などです。

    • 欠損添付ファイルメタデータ

      添付ファイルのメタデータヘッダーがない場合にスローされます。

    • missingServiceConfiguration

      予期されるサービス構成がない場合にスローされます。

    • 欠損 SysID

      予期される sys_id パラメーターがない場合にスローされます。

    • network(NetworkServiceError)
      • genericError(文字列)
      • 操作がキャンセルされました
      • サービス無効
      • serverError(エラー)
      • システムエラー (エラー)

      ネットワーク サービスでエラーが発生したときにスローされます。

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

    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(with fields: [FieldName: FieldValue], in tableName: String, writeOptions: FieldWriteOptions, configuration: FieldReadConfiguration, completion: @escaping (Result&lt;Data, NowDataError>)

    指定されたテーブルに指定されたレコードを挿入し、レコードが保存された後にハンドラーを実行します completion

    必要に応じて、返された結果をカスタムのCodableモデルにデコードするか、代わりに関数を使用できます NowTableService - paginator&lt;Model: Decodable>(from tableName: String, path: String = Constants.resultPath, coder: Coder = .default, configuration: FetchConfiguration? = nil)または、便利な関数 convertToRecords() を使用して、データを NowRecord オブジェクトに変換することもできます。NowRecords を出力するようにパブリッシャーを変換する方法を次に示します。
    let dataPublisher: AnyPublisher<Data, NowDataError> = ...
    let recordsPublisher: AnyPublisher<[NowRecord], NowDataError> = myResult.convertToRecords()
    注:
    レコード内のすべてのフィールドは更新できない場合があります。たとえば、 プリフィックス sys_ を持つフィールドは、通常、自動的に生成されるシステムパラメーターであり、更新することはできません。指定されておらず、システムによって自動生成されないフィールドは、関連付けられたデータタイプの null 値に設定されます。
    表 : 10. パラメーター
    名前 タイプ 説明
    フィールドあり [フィールド名: フィールド値] レコードに含めるフィールドの名前と値のペア。
    テーブル名の内 文字列 レコードを書き込むテーブルの名前 ( インシデントなど)。
    書き込みオプション フィールド書き込みオプション オプション。レコードに書き込まれるデータに適用する構成オプション。

    デフォルト:nil

    構成 FieldReadConfiguration オプション。返すフィールドとフィールドに含める内容を指定する構成オプション。

    デフォルト:nil

    完了 @escaping (result&lt;data, nowDataError>) レコードが取得された後に実行する完了ハンドラー。
    戻り値:
    • 成功:データ - 要求されたレコード
    • エラー:NowDataError
      • accessToken(AccessTokenProviderError)
        • AccessTokenProviderError:アクセストークンプロバイダーのエラーコードまたはメッセージ。
          • accessTokenRetrievalFailed
          • userSessionError(_ error: Error)

        アクセストークンにエラーがある場合にスローされます。

      • attachment検証

        添付ファイルが検証に失敗した場合にスローされます。

      • badResponse(statusCode: HTTPStatusCode)
        • HTTPStatusCode:インスタンスから受信したステータスコード。

        要求が予期しない応答を返すとスローされます

      • cannotDecodeModel(DecodeError)
        • DecodingError:デコードエラーが検出されました。

        コード可能なモデルを JSON からデコードできない場合にスローされます。

      • cannotDecodeProperty(タイプ: 任意, 送信元: 文字列)
        • type:文字列からデコードするラップされたタイプ。
        • from:指定された型にデコードする文字列。

        文字列でラップされた値を JSON からデコードできない場合にスローされます。

      • cannotEncodeModel(EncodingError)
        • EncodingError:エンコードエラーが検出されました。

        Codable モデルを JSON にエンコードできない場合にスローされます。

      • cannotParseResponse

        インスタンスからの応答を予期される形式に解析できない場合にスローされます。

      • 無効な URL

        URL を形成できない場合にスローされます。たとえば、文字列に URL で無効な文字が含まれている場合や、空の文字列である場合などです。

      • 欠損添付ファイルメタデータ

        添付ファイルのメタデータヘッダーがない場合にスローされます。

      • missingServiceConfiguration

        予期されるサービス構成がない場合にスローされます。

      • 欠損 SysID

        予期される sys_id パラメーターがない場合にスローされます。

      • network(NetworkServiceError)
        • genericError(文字列)
        • 操作がキャンセルされました
        • サービス無効
        • serverError(エラー)
        • システムエラー (エラー)

        ネットワーク サービスでエラーが発生したときにスローされます。

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

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

    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(withfields: [FieldName: FieldValue], in tableName: String, writeOptions: FieldWriteOptions? = nil, configuration: FieldReadConfiguration? = nil)

    指定されたテーブルに、指定されたフィールドを含むレコードを挿入します。

    注:
    このメソッドは廃止されました。代わりに、メソッドの async/await 実装を使用する必要があります。
    - パブリッシャーは、カスタム のCodableモデルにデコードできるデータを出力するか、関数を使用することもできます NowTableService - paginator&lt;Model: Decodable>(from tableName: String, path: String = Constants.resultPath, coder: Coder = .default, configuration: FetchConfiguration? = nil) または、便利な関数 convertToRecords() を使用して、データを NowRecord オブジェクトに変換することもできます。NowRecords を出力するようにパブリッシャーを変換する方法を次に示します。
    let dataPublisher: AnyPublisher<Data, NowDataError> = ...
    let recordsPublisher: AnyPublisher<[NowRecord], NowDataError> = myPublisher.convertToRecords()
    注:
    レコード内のすべてのフィールドは更新できない場合があります。たとえば、 プリフィックス sys_ を持つフィールドは、通常、自動的に生成されるシステムパラメーターであり、更新することはできません。指定されておらず、システムによって自動生成されないフィールドは、関連付けられたデータタイプの null 値に設定されます。
    表 : 12. パラメーター
    名前 タイプ 説明
    フィールドあり [フィールド名: フィールド値] レコードに含めるフィールドの名前と値のペア。
    テーブル名の内 文字列 レコードを書き込むテーブルの名前 ( インシデントなど)。
    書き込みオプション フィールド書き込みオプション オプション。レコードに書き込まれるデータに適用する構成オプション。

    デフォルト:nil

    構成 フェッチ構成 オプション。返されるレコードを定義するフィルター、ページネーションページサイズ制限、取得するフィールド、フィールドに含める内容など、取得されたレコードに適用する構成。

    デフォルト:nil - すべてのレコードが返されます。

    表 : 13. 返される内容
    タイプ 説明
    AnyPublisher&lt;Data, NowDataError> 成功:更新されたレコードを含むデータオブジェクト。

    エラー:NowDataError

    • accessToken(AccessTokenProviderError)
      • AccessTokenProviderError:アクセストークンプロバイダーのエラーコードまたはメッセージ。
        • accessTokenRetrievalFailed
        • userSessionError(_ error: Error)

      アクセストークンにエラーがある場合にスローされます。

    • attachment検証

      添付ファイルが検証に失敗した場合にスローされます。

    • badResponse(statusCode: HTTPStatusCode)
      • HTTPStatusCode:インスタンスから受信したステータスコード。

      要求が予期しない応答を返すとスローされます

    • cannotDecodeModel(DecodeError)
      • DecodingError:デコードエラーが検出されました。

      コード可能なモデルを JSON からデコードできない場合にスローされます。

    • cannotDecodeProperty(タイプ: 任意, 送信元: 文字列)
      • type:文字列からデコードするラップされたタイプ。
      • from:指定された型にデコードする文字列。

      文字列でラップされた値を JSON からデコードできない場合にスローされます。

    • cannotEncodeModel(EncodingError)
      • EncodingError:エンコードエラーが検出されました。

      Codable モデルを JSON にエンコードできない場合にスローされます。

    • cannotParseResponse

      インスタンスからの応答を予期される形式に解析できない場合にスローされます。

    • 無効な URL

      URL を形成できない場合にスローされます。たとえば、文字列に URL で無効な文字が含まれている場合や、空の文字列である場合などです。

    • 欠損添付ファイルメタデータ

      添付ファイルのメタデータヘッダーがない場合にスローされます。

    • missingServiceConfiguration

      予期されるサービス構成がない場合にスローされます。

    • 欠損 SysID

      予期される sys_id パラメーターがない場合にスローされます。

    • network(NetworkServiceError)
      • genericError(文字列)
      • 操作がキャンセルされました
      • サービス無効
      • serverError(エラー)
      • システムエラー (エラー)

      ネットワーク サービスでエラーが発生したときにスローされます。

    この例では、指定されたテーブルと指定されたフィールドにレコードを挿入する関数を作成する方法を示します。呼び出しの出力は 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テーブルName: 文字列) 非同期スロー

    指定されたコード化可能モデルを指定されたテーブルから削除します。

    表 : 14. パラメーター
    名前 タイプ 説明
    モデル モデル テーブルから削除する SysIdentifitableModel。削除するレコードのsys_idが含まれている必要があります。
    テーブル名から 文字列 インシデントなどの情報を削除するテーブルの名前。
    表 : 15. 返される内容
    タイプ 説明
    なし メソッドが成功したときに何も返されません。
    NowDataError メソッドが失敗したときにスローされます。
    • accessToken(AccessTokenProviderError)
      • AccessTokenProviderError:アクセストークンプロバイダーのエラーコードまたはメッセージ。
        • accessTokenRetrievalFailed
        • userSessionError(_ error: Error)

      アクセストークンにエラーがある場合にスローされます。

    • attachment検証

      添付ファイルが検証に失敗した場合にスローされます。

    • badResponse(statusCode: HTTPStatusCode)
      • HTTPStatusCode:インスタンスから受信したステータスコード。

      要求が予期しない応答を返すとスローされます

    • cannotDecodeModel(DecodeError)
      • DecodingError:デコードエラーが検出されました。

      コード可能なモデルを JSON からデコードできない場合にスローされます。

    • cannotDecodeProperty(タイプ: 任意, 送信元: 文字列)
      • type:文字列からデコードするラップされたタイプ。
      • from:指定された型にデコードする文字列。

      文字列でラップされた値を JSON からデコードできない場合にスローされます。

    • cannotEncodeModel(EncodingError)
      • EncodingError:エンコードエラーが検出されました。

      Codable モデルを JSON にエンコードできない場合にスローされます。

    • cannotParseResponse

      インスタンスからの応答を予期される形式に解析できない場合にスローされます。

    • 無効な URL

      URL を形成できない場合にスローされます。たとえば、文字列に URL で無効な文字が含まれている場合や、空の文字列である場合などです。

    • 欠損添付ファイルメタデータ

      添付ファイルのメタデータヘッダーがない場合にスローされます。

    • missingServiceConfiguration

      予期されるサービス構成がない場合にスローされます。

    • 欠損 SysID

      予期される sys_id パラメーターがない場合にスローされます。

    • network(NetworkServiceError)
      • genericError(文字列)
      • 操作がキャンセルされました
      • サービス無効
      • serverError(エラー)
      • システムエラー (エラー)

      ネットワーク サービスでエラーが発生したときにスローされます。

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

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

    NowTableService - delete(_ model: Model, fromテーブルName: 文字列, completion: @escaping (Result&lt;Void, NowDataError>))

    指定されたテーブルから指定された Codable モデルを削除し、適切な completion ハンドラーを実行します。

    表 : 16. パラメーター
    名前 タイプ 説明
    モデル モデル テーブルから削除する SysIdentifitableModel。削除するレコードのsys_idが含まれている必要があります。
    テーブル名から 文字列 インシデントなどの情報を削除するテーブルの名前。
    完了 @escaping (result&lt;void, nowDataError>) 指定されたコード化可能モデルを削除した後に実行する完了ハンドラー。
    戻り値:
    • 成功:何も返されませんでした
    • エラー:NowDataError
      • accessToken(AccessTokenProviderError)
        • AccessTokenProviderError:アクセストークンプロバイダーのエラーコードまたはメッセージ。
          • accessTokenRetrievalFailed
          • userSessionError(_ error: Error)

        アクセストークンにエラーがある場合にスローされます。

      • attachment検証

        添付ファイルが検証に失敗した場合にスローされます。

      • badResponse(statusCode: HTTPStatusCode)
        • HTTPStatusCode:インスタンスから受信したステータスコード。

        要求が予期しない応答を返すとスローされます

      • cannotDecodeModel(DecodeError)
        • DecodingError:デコードエラーが検出されました。

        コード可能なモデルを JSON からデコードできない場合にスローされます。

      • cannotDecodeProperty(タイプ: 任意, 送信元: 文字列)
        • type:文字列からデコードするラップされたタイプ。
        • from:指定された型にデコードする文字列。

        文字列でラップされた値を JSON からデコードできない場合にスローされます。

      • cannotEncodeModel(EncodingError)
        • EncodingError:エンコードエラーが検出されました。

        Codable モデルを JSON にエンコードできない場合にスローされます。

      • cannotParseResponse

        インスタンスからの応答を予期される形式に解析できない場合にスローされます。

      • 無効な URL

        URL を形成できない場合にスローされます。たとえば、文字列に URL で無効な文字が含まれている場合や、空の文字列である場合などです。

      • 欠損添付ファイルメタデータ

        添付ファイルのメタデータヘッダーがない場合にスローされます。

      • missingServiceConfiguration

        予期されるサービス構成がない場合にスローされます。

      • 欠損 SysID

        予期される sys_id パラメーターがない場合にスローされます。

      • network(NetworkServiceError)
        • genericError(文字列)
        • 操作がキャンセルされました
        • サービス無効
        • serverError(エラー)
        • システムエラー (エラー)

        ネットワーク サービスでエラーが発生したときにスローされます。

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

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

    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テーブルName: 文字列)

    指定されたコード化可能モデルを指定されたテーブルから削除します。

    注:
    このメソッドは廃止されました。代わりに、メソッドの async/await 実装を使用する必要があります。
    表 : 18. パラメーター
    名前 タイプ 説明
    モデル モデル テーブルから削除する SysIdentifitableModel。削除するレコードのsys_idが含まれている必要があります。
    テーブル名から 文字列 インシデントなどの情報を削除するテーブルの名前。
    表 : 19. 返される内容
    タイプ 説明
    AnyPublisher&lt;Void, NowDataError> 成功:何も返されませんでした

    エラー:NowDataError

    • accessToken(AccessTokenProviderError)
      • AccessTokenProviderError:アクセストークンプロバイダーのエラーコードまたはメッセージ。
        • accessTokenRetrievalFailed
        • userSessionError(_ error: Error)

      アクセストークンにエラーがある場合にスローされます。

    • attachment検証

      添付ファイルが検証に失敗した場合にスローされます。

    • badResponse(statusCode: HTTPStatusCode)
      • HTTPStatusCode:インスタンスから受信したステータスコード。

      要求が予期しない応答を返すとスローされます

    • cannotDecodeModel(DecodeError)
      • DecodingError:デコードエラーが検出されました。

      コード可能なモデルを JSON からデコードできない場合にスローされます。

    • cannotDecodeProperty(タイプ: 任意, 送信元: 文字列)
      • type:文字列からデコードするラップされたタイプ。
      • from:指定された型にデコードする文字列。

      文字列でラップされた値を JSON からデコードできない場合にスローされます。

    • cannotEncodeModel(EncodingError)
      • EncodingError:エンコードエラーが検出されました。

      Codable モデルを JSON にエンコードできない場合にスローされます。

    • cannotParseResponse

      インスタンスからの応答を予期される形式に解析できない場合にスローされます。

    • 無効な URL

      URL を形成できない場合にスローされます。たとえば、文字列に URL で無効な文字が含まれている場合や、空の文字列である場合などです。

    • 欠損添付ファイルメタデータ

      添付ファイルのメタデータヘッダーがない場合にスローされます。

    • missingServiceConfiguration

      予期されるサービス構成がない場合にスローされます。

    • 欠損 SysID

      予期される sys_id パラメーターがない場合にスローされます。

    • network(NetworkServiceError)
      • genericError(文字列)
      • 操作がキャンセルされました
      • サービス無効
      • serverError(エラー)
      • システムエラー (エラー)

      ネットワーク サービスでエラーが発生したときにスローされます。

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

    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テーブルName: 文字列) 非同期スロー

    指定されたテーブルから指定されたレコードを削除します。

    表 : 20. パラメーター
    名前 タイプ 説明
    sysId 文字列 削除するレコードの sys_id。
    テーブル名から 文字列 インシデントなどの情報を削除するテーブルの名前。
    表 : 21. 返される内容
    タイプ 説明
    なし メソッドが成功したときに何も返されません。
    NowDataError メソッドが失敗したときにスローされます。
    • accessToken(AccessTokenProviderError)
      • AccessTokenProviderError:アクセストークンプロバイダーのエラーコードまたはメッセージ。
        • accessTokenRetrievalFailed
        • userSessionError(_ error: Error)

      アクセストークンにエラーがある場合にスローされます。

    • attachment検証

      添付ファイルが検証に失敗した場合にスローされます。

    • badResponse(statusCode: HTTPStatusCode)
      • HTTPStatusCode:インスタンスから受信したステータスコード。

      要求が予期しない応答を返すとスローされます

    • cannotDecodeModel(DecodeError)
      • DecodingError:デコードエラーが検出されました。

      コード可能なモデルを JSON からデコードできない場合にスローされます。

    • cannotDecodeProperty(タイプ: 任意, 送信元: 文字列)
      • type:文字列からデコードするラップされたタイプ。
      • from:指定された型にデコードする文字列。

      文字列でラップされた値を JSON からデコードできない場合にスローされます。

    • cannotEncodeModel(EncodingError)
      • EncodingError:エンコードエラーが検出されました。

      Codable モデルを JSON にエンコードできない場合にスローされます。

    • cannotParseResponse

      インスタンスからの応答を予期される形式に解析できない場合にスローされます。

    • 無効な URL

      URL を形成できない場合にスローされます。たとえば、文字列に URL で無効な文字が含まれている場合や、空の文字列である場合などです。

    • 欠損添付ファイルメタデータ

      添付ファイルのメタデータヘッダーがない場合にスローされます。

    • missingServiceConfiguration

      予期されるサービス構成がない場合にスローされます。

    • 欠損 SysID

      予期される sys_id パラメーターがない場合にスローされます。

    • network(NetworkServiceError)
      • genericError(文字列)
      • 操作がキャンセルされました
      • サービス無効
      • serverError(エラー)
      • システムエラー (エラー)

      ネットワーク サービスでエラーが発生したときにスローされます。

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

    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&lt;Void, NowDataError>))

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

    表 : 22. パラメーター
    名前 タイプ 説明
    sysId 文字列 削除するレコードの sys_id。
    テーブル名から 文字列 インシデントなどの情報を削除するテーブルの名前。
    完了 @escaping (result&lt;void, nowDataError>) 成功:何も返されません。

    エラー:NowDataError

    • accessToken(AccessTokenProviderError)
      • AccessTokenProviderError:アクセストークンプロバイダーのエラーコードまたはメッセージ。
        • accessTokenRetrievalFailed
        • userSessionError(_ error: Error)

      アクセストークンにエラーがある場合にスローされます。

    • attachment検証

      添付ファイルが検証に失敗した場合にスローされます。

    • badResponse(statusCode: HTTPStatusCode)
      • HTTPStatusCode:インスタンスから受信したステータスコード。

      要求が予期しない応答を返すとスローされます

    • cannotDecodeModel(DecodeError)
      • DecodingError:デコードエラーが検出されました。

      コード可能なモデルを JSON からデコードできない場合にスローされます。

    • cannotDecodeProperty(タイプ: 任意, 送信元: 文字列)
      • type:文字列からデコードするラップされたタイプ。
      • from:指定された型にデコードする文字列。

      文字列でラップされた値を JSON からデコードできない場合にスローされます。

    • cannotEncodeModel(EncodingError)
      • EncodingError:エンコードエラーが検出されました。

      Codable モデルを JSON にエンコードできない場合にスローされます。

    • cannotParseResponse

      インスタンスからの応答を予期される形式に解析できない場合にスローされます。

    • 無効な URL

      URL を形成できない場合にスローされます。たとえば、文字列に URL で無効な文字が含まれている場合や、空の文字列である場合などです。

    • 欠損添付ファイルメタデータ

      添付ファイルのメタデータヘッダーがない場合にスローされます。

    • missingServiceConfiguration

      予期されるサービス構成がない場合にスローされます。

    • 欠損 SysID

      予期される sys_id パラメーターがない場合にスローされます。

    • network(NetworkServiceError)
      • genericError(文字列)
      • 操作がキャンセルされました
      • サービス無効
      • serverError(エラー)
      • システムエラー (エラー)

      ネットワーク サービスでエラーが発生したときにスローされます。

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

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

    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テーブルName: 文字列)

    指定されたテーブルから指定されたレコードを削除します。

    注:
    このメソッドは廃止されました。代わりに、メソッドの async/await 実装を使用する必要があります。
    表 : 24. パラメーター
    名前 タイプ 説明
    sysId 文字列 削除するレコードの sys_id。
    テーブル名から 文字列 インシデントなどの情報を削除するテーブルの名前。
    表 : 25. 返される内容
    タイプ 説明
    AnyPublisher&lt;Void, NowDataError> 成功:何も返されませんでした

    エラー:NowDataError

    • accessToken(AccessTokenProviderError)
      • AccessTokenProviderError:アクセストークンプロバイダーのエラーコードまたはメッセージ。
        • accessTokenRetrievalFailed
        • userSessionError(_ error: Error)

      アクセストークンにエラーがある場合にスローされます。

    • attachment検証

      添付ファイルが検証に失敗した場合にスローされます。

    • badResponse(statusCode: HTTPStatusCode)
      • HTTPStatusCode:インスタンスから受信したステータスコード。

      要求が予期しない応答を返すとスローされます

    • cannotDecodeModel(DecodeError)
      • DecodingError:デコードエラーが検出されました。

      コード可能なモデルを JSON からデコードできない場合にスローされます。

    • cannotDecodeProperty(タイプ: 任意, 送信元: 文字列)
      • type:文字列からデコードするラップされたタイプ。
      • from:指定された型にデコードする文字列。

      文字列でラップされた値を JSON からデコードできない場合にスローされます。

    • cannotEncodeModel(EncodingError)
      • EncodingError:エンコードエラーが検出されました。

      Codable モデルを JSON にエンコードできない場合にスローされます。

    • cannotParseResponse

      インスタンスからの応答を予期される形式に解析できない場合にスローされます。

    • 無効な URL

      URL を形成できない場合にスローされます。たとえば、文字列に URL で無効な文字が含まれている場合や、空の文字列である場合などです。

    • 欠損添付ファイルメタデータ

      添付ファイルのメタデータヘッダーがない場合にスローされます。

    • missingServiceConfiguration

      予期されるサービス構成がない場合にスローされます。

    • 欠損 SysID

      予期される sys_id パラメーターがない場合にスローされます。

    • network(NetworkServiceError)
      • genericError(文字列)
      • 操作がキャンセルされました
      • サービス無効
      • serverError(エラー)
      • システムエラー (エラー)

      ネットワーク サービスでエラーが発生したときにスローされます。

    この例は、指定されたテーブルのレコードを削除する関数を作成する方法を示しています。

    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)

    NowTableService オブジェクトを作成します。

    表 : 26. パラメーター
    名前 タイプ 説明
    構成 NowServiceConfiguration サービスの作成時に使用する設定パラメーター。
    coreServiceProvider ナウコアサービス提供 オプション。NowTableService に関連付けるサービスプロバイダー。

    デフォルト:nil

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

    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&lt;Model: デコード可能>(sysId: SysID? = nil, fromテーブルName: String, path: String = Constants.resultPath, coder: Coder = .default, configuration: FetchConfiguration? = nil) 非同期スロー

    指定したテーブルからのデコード可能なモデルの取得を有効にします。

    テーブル API 応答は、 result 次のようなパラメーター内にネストされます。
    {
      "result": [
        { "name": "Ash Williams" },
        { "name": "Lionel Cosgrove" },
        { "name": "Laurie Strode" }
      ]
    }
    結果セットが大きい場合は、いずれかのページネーション関数を使用するか、 NowTableService - paginator(from tableName: String, configuration: FetchConfiguration? = nil)NowTableService - paginator&lt;Model: Decodable>(from tableName: String, path: String = Constants.resultPath, coder: Coder = .default, configuration: FetchConfiguration? = nil) ページネーションされたモデルをフェッチします。
    表 : 27. パラメーター
    名前 タイプ 説明
    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 のデコード/エンコードをよりきめ細かく制御します。

      この列挙体は、特別な日付形式、タイム ゾーン、ロケールを使用する場合など、独自の JSONEncoderJSONDecoder を提供する場合にのみ使用します。

      let myEncoder = JSONEncoder()
      myEncoder.dateFormat = …
      let myDecoder = JSONDecoder()
      myDecoder.dateFormat = …
      let coder: Coder = .custom(myEncoder, myDecoder)

    デフォルト:.default

    構成 フェッチ構成 オプション。返されるレコードを定義するフィルター、ページネーションページサイズ制限、取得するフィールド、フィールドに含める内容など、取得されたレコードに適用する構成。

    デフォルト:nil - すべてのレコードが返されます。

    表 : 28. 返される内容
    タイプ 説明
    モデル メソッドが成功した場合に返されます。デコード可能なモデル。
    NowDataError メソッドが失敗したときにスローされます。
    • accessToken(AccessTokenProviderError)
      • AccessTokenProviderError:アクセストークンプロバイダーのエラーコードまたはメッセージ。
        • accessTokenRetrievalFailed
        • userSessionError(_ error: Error)

      アクセストークンにエラーがある場合にスローされます。

    • attachment検証

      添付ファイルが検証に失敗した場合にスローされます。

    • badResponse(statusCode: HTTPStatusCode)
      • HTTPStatusCode:インスタンスから受信したステータスコード。

      要求が予期しない応答を返すとスローされます

    • cannotDecodeModel(DecodeError)
      • DecodingError:デコードエラーが検出されました。

      コード可能なモデルを JSON からデコードできない場合にスローされます。

    • cannotDecodeProperty(タイプ: 任意, 送信元: 文字列)
      • type:文字列からデコードするラップされたタイプ。
      • from:指定された型にデコードする文字列。

      文字列でラップされた値を JSON からデコードできない場合にスローされます。

    • cannotEncodeModel(EncodingError)
      • EncodingError:エンコードエラーが検出されました。

      Codable モデルを JSON にエンコードできない場合にスローされます。

    • cannotParseResponse

      インスタンスからの応答を予期される形式に解析できない場合にスローされます。

    • 無効な URL

      URL を形成できない場合にスローされます。たとえば、文字列に URL で無効な文字が含まれている場合や、空の文字列である場合などです。

    • 欠損添付ファイルメタデータ

      添付ファイルのメタデータヘッダーがない場合にスローされます。

    • missingServiceConfiguration

      予期されるサービス構成がない場合にスローされます。

    • 欠損 SysID

      予期される sys_id パラメーターがない場合にスローされます。

    • network(NetworkServiceError)
      • genericError(文字列)
      • 操作がキャンセルされました
      • サービス無効
      • serverError(エラー)
      • システムエラー (エラー)

      ネットワーク サービスでエラーが発生したときにスローされます。

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

    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&lt;Model: デコード可能>(_ type: Model.Type, with sysId: SysID? = nil, from tableName: String, path: String = Constants.resultPath, coder: Coder = .default, configuration: FetchConfiguration? = nil, completion: @escaping (Result&lt;Model, NowDataError>))

    指定されたテーブルからデコード可能なモデルを取得します。

    テーブル API 応答は、 result 次のようなパラメーター内にネストされます。
    {
      "result": [
        { "name": "Ash Williams" },
        { "name": "Lionel Cosgrove" },
        { "name": "Laurie Strode" }
      ]
    }

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

    表 : 29. パラメーター
    名前 タイプ 説明
    タイプ Model.Type デコードする値のタイプ。
    sysId を含む 文字列 オプション。返されるレコードの sys_id。

    デフォルト:設定ごとに configuration 返されるすべてのレコード。

    テーブル名から 文字列 インシデントなどのレコードの取得元のテーブルの名前。
    path 文字列 オプション。入れ子になった型のドット区切りパス。たとえば、 result または foo.bar.baz を指定すると、より詳細なネストができます。

    デフォルト: Constants.resultPath

    コーダー コーダー オプション。インスタンスとの間でServiceNow送受信されるデータのエンコードまたはデコードに使用するコーダー

    デフォルト: .default

    構成 フェッチ構成 オプション。返されるレコードを定義するフィルター、ページネーションページサイズ制限、取得するフィールド、フィールドに含める内容など、取得されたレコードに適用する構成。

    デフォルト:nil - すべてのレコードが返されます。

    完了@escaping (result&lt;model, nowDataError>)指定されたデコード可能モデルを取得した後に実行する完了ハンドラー。
    完了ハンドラーの値を返します。
    • 成功:要求されたモデルタイプのデータ。
    • エラー:NowDataError
      • accessToken(AccessTokenProviderError)
        • AccessTokenProviderError:アクセストークンプロバイダーのエラーコードまたはメッセージ。
          • accessTokenRetrievalFailed
          • userSessionError(_ error: Error)

        アクセストークンにエラーがある場合にスローされます。

      • attachment検証

        添付ファイルが検証に失敗した場合にスローされます。

      • badResponse(statusCode: HTTPStatusCode)
        • HTTPStatusCode:インスタンスから受信したステータスコード。

        要求が予期しない応答を返すとスローされます

      • cannotDecodeModel(DecodeError)
        • DecodingError:デコードエラーが検出されました。

        コード可能なモデルを JSON からデコードできない場合にスローされます。

      • cannotDecodeProperty(タイプ: 任意, 送信元: 文字列)
        • type:文字列からデコードするラップされたタイプ。
        • from:指定された型にデコードする文字列。

        文字列でラップされた値を JSON からデコードできない場合にスローされます。

      • cannotEncodeModel(EncodingError)
        • EncodingError:エンコードエラーが検出されました。

        Codable モデルを JSON にエンコードできない場合にスローされます。

      • cannotParseResponse

        インスタンスからの応答を予期される形式に解析できない場合にスローされます。

      • 無効な URL

        URL を形成できない場合にスローされます。たとえば、文字列に URL で無効な文字が含まれている場合や、空の文字列である場合などです。

      • 欠損添付ファイルメタデータ

        添付ファイルのメタデータヘッダーがない場合にスローされます。

      • missingServiceConfiguration

        予期されるサービス構成がない場合にスローされます。

      • 欠損 SysID

        予期される sys_id パラメーターがない場合にスローされます。

      • network(NetworkServiceError)
        • genericError(文字列)
        • 操作がキャンセルされました
        • サービス無効
        • serverError(エラー)
        • システムエラー (エラー)

        ネットワーク サービスでエラーが発生したときにスローされます。

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

    デコード 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 1 つのデコード可能モデルを取得するには、[User].self ではなく User.self などの単一のモデルタイプを使用します。

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

    NowTableService - model&lt;Model: デコード可能>(sysId: SysID? = nil, fromテーブルName: String, path: String = Constants.resultPath, coder: Coder = .default, configuration: FetchConfiguration? = nil)

    指定したテーブルからデコード可能なモデルを取得できるようにするパブリッシャーを作成します。

    注:
    このメソッドは廃止されました。代わりに、メソッドの async/await 実装を使用する必要があります。
    テーブル API 応答は、 result 次のようなパラメーター内にネストされます。
    {
      "result": [
        { "name": "Ash Williams" },
        { "name": "Lionel Cosgrove" },
        { "name": "Laurie Strode" }
      ]
    }
    結果セットが大きい場合は、いずれかのページネーション関数を使用するか、 NowTableService - paginator(from tableName: String, configuration: FetchConfiguration? = nil)NowTableService - paginator&lt;Model: Decodable>(from tableName: String, path: String = Constants.resultPath, coder: Coder = .default, configuration: FetchConfiguration? = nil) ページネーションされたモデルをフェッチします。
    表 : 31. パラメーター
    名前 タイプ 説明
    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 のデコード/エンコードをよりきめ細かく制御します。

      この列挙体は、特別な日付形式、タイム ゾーン、ロケールを使用する場合など、独自の JSONEncoderJSONDecoder を提供する場合にのみ使用します。

      let myEncoder = JSONEncoder()
      myEncoder.dateFormat = …
      let myDecoder = JSONDecoder()
      myDecoder.dateFormat = …
      let coder: Coder = .custom(myEncoder, myDecoder)

    デフォルト:.default

    構成 フェッチ構成 オプション。返されるレコードを定義するフィルター、ページネーションページサイズ制限、取得するフィールド、フィールドに含める内容など、取得されたレコードに適用する構成。

    デフォルト:nil - すべてのレコードが返されます。

    表 : 32. 返される内容
    タイプ 説明
    AnyPublisher&lt;Model, NowDataError> 成功:デコード可能なモデルを返却するパブリッシャー。

    エラー:NowDataError

    • accessToken(AccessTokenProviderError)
      • AccessTokenProviderError:アクセストークンプロバイダーのエラーコードまたはメッセージ。
        • accessTokenRetrievalFailed
        • userSessionError(_ error: Error)

      アクセストークンにエラーがある場合にスローされます。

    • attachment検証

      添付ファイルが検証に失敗した場合にスローされます。

    • badResponse(statusCode: HTTPStatusCode)
      • HTTPStatusCode:インスタンスから受信したステータスコード。

      要求が予期しない応答を返すとスローされます

    • cannotDecodeModel(DecodeError)
      • DecodingError:デコードエラーが検出されました。

      コード可能なモデルを JSON からデコードできない場合にスローされます。

    • cannotDecodeProperty(タイプ: 任意, 送信元: 文字列)
      • type:文字列からデコードするラップされたタイプ。
      • from:指定された型にデコードする文字列。

      文字列でラップされた値を JSON からデコードできない場合にスローされます。

    • cannotEncodeModel(EncodingError)
      • EncodingError:エンコードエラーが検出されました。

      Codable モデルを JSON にエンコードできない場合にスローされます。

    • cannotParseResponse

      インスタンスからの応答を予期される形式に解析できない場合にスローされます。

    • 無効な URL

      URL を形成できない場合にスローされます。たとえば、文字列に URL で無効な文字が含まれている場合や、空の文字列である場合などです。

    • 欠損添付ファイルメタデータ

      添付ファイルのメタデータヘッダーがない場合にスローされます。

    • missingServiceConfiguration

      予期されるサービス構成がない場合にスローされます。

    • 欠損 SysID

      予期される sys_id パラメーターがない場合にスローされます。

    • network(NetworkServiceError)
      • genericError(文字列)
      • 操作がキャンセルされました
      • サービス無効
      • serverError(エラー)
      • システムエラー (エラー)

      ネットワーク サービスでエラーが発生したときにスローされます。

    デコードされたユーザーモデルをタイプ別に提供する公開者 ( [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 1 つのデコード可能モデルをフェッチするには、[User].self ではなく単一の User.self モデルタイプを使用します。

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

    NowTableService - paginator(from tableName: String, configuration: FetchConfiguration? = nil)

    レコードのページを反復処理できるようにするページネータを作成します。

    ページネータの パブリッシャーは、カスタム のCodableモデルにデコードできるデータを出力するか、関数を使用することもできます NowTableService - paginator&lt;Model: Decodable>(from tableName: String, path: String = Constants.resultPath, coder: Coder = .default, configuration: FetchConfiguration? = nil) または、便利な関数 convertToRecords() を使用して、データを NowRecord オブジェクトに変換することもできます。NowRecords を出力するようにパブリッシャーを変換する方法を次に示します。
    let dataPublisher: AnyPublisher<Data, NowDataError> = ...
    let recordsPublisher: AnyPublisher<[NowRecord], NowDataError> = myPublisher.convertToRecords()
    注:
    パラメーターで configuration オーバーライドされない限り、ページネータはページあたり 20 個のアイテムを返します。ACL 評価によっては、ページの実際にフェッチされるアイテム数がデフォルト値または構成値よりも少なくなる場合があります。
    表 : 33. パラメーター
    名前 タイプ 説明
    tableName 文字列 インシデントなどのレコードの取得元のテーブルの名前。
    構成 フェッチ構成 オプション。返されるレコードを定義するフィルター、ページネーションページサイズ制限、取得するフィールド、フィールドに含める内容など、取得されたレコードに適用する構成。

    デフォルト:nil - すべてのレコードが返されます。

    表 : 34. 返される内容
    タイプ 説明
    paginator&lt;data> 成功:指定されたレコードを含むページネータオブジェクト。

    エラー:NowDataError

    • accessToken(AccessTokenProviderError)
      • AccessTokenProviderError:アクセストークンプロバイダーのエラーコードまたはメッセージ。
        • accessTokenRetrievalFailed
        • userSessionError(_ error: Error)

      アクセストークンにエラーがある場合にスローされます。

    • attachment検証

      添付ファイルが検証に失敗した場合にスローされます。

    • badResponse(statusCode: HTTPStatusCode)
      • HTTPStatusCode:インスタンスから受信したステータスコード。

      要求が予期しない応答を返すとスローされます

    • cannotDecodeModel(DecodeError)
      • DecodingError:デコードエラーが検出されました。

      コード可能なモデルを JSON からデコードできない場合にスローされます。

    • cannotDecodeProperty(タイプ: 任意, 送信元: 文字列)
      • type:文字列からデコードするラップされたタイプ。
      • from:指定された型にデコードする文字列。

      文字列でラップされた値を JSON からデコードできない場合にスローされます。

    • cannotEncodeModel(EncodingError)
      • EncodingError:エンコードエラーが検出されました。

      Codable モデルを JSON にエンコードできない場合にスローされます。

    • cannotParseResponse

      インスタンスからの応答を予期される形式に解析できない場合にスローされます。

    • 無効な URL

      URL を形成できない場合にスローされます。たとえば、文字列に URL で無効な文字が含まれている場合や、空の文字列である場合などです。

    • 欠損添付ファイルメタデータ

      添付ファイルのメタデータヘッダーがない場合にスローされます。

    • missingServiceConfiguration

      予期されるサービス構成がない場合にスローされます。

    • 欠損 SysID

      予期される sys_id パラメーターがない場合にスローされます。

    • network(NetworkServiceError)
      • genericError(文字列)
      • 操作がキャンセルされました
      • サービス無効
      • serverError(エラー)
      • システムエラー (エラー)

      ネットワーク サービスでエラーが発生したときにスローされます。

    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&lt;Model: Decodable>(from tableName: String, path: String = Constants.resultPath, coder: Coder = .default, configuration: FetchConfiguration? = nil)

    入れ子を処理するデコードされたモデルのページの反復を有効にするページネータを作成します。

    REST テーブル API 応答はServiceNow、次のような結果プロパティ内にネストされます。
    {
      "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 サブスクリプションと同様に、予期しない結果を避けるために、サブスクリプションは必ず保持してください。
    表 : 35. パラメーター
    名前 タイプ 説明
    テーブル名から 文字列 インシデントなどのレコードの取得元のテーブルの名前。
    path 文字列 入れ子になった型のドット区切りパス。たとえば、 より 詳細なネストの場合は、result または result.user.photos を入力します。カスタムパスを指定すると、ネストされたデータのフェッチまたは反復処理が可能になります

    デフォルト: result

    コーダー コーダー オプション。インスタンスとの間でServiceNow送受信されるデータのエンコードまたはデコードに使用するコーダー
    可能な値:
    • default:デフォルトのエンコーダーは、デバイスのロケールタイムゾーンを使用して yyy-MM-dd HH:mm:ss 形式を使用して日付を書式設定します。
    • custom(JSONEncoder, JSONDecoder):

      カスタムコーダーを使用して、JSON のデコード/エンコードをよりきめ細かく制御します。

      この列挙体は、特別な日付形式、タイム ゾーン、ロケールを使用する場合など、独自の JSONEncoderJSONDecoder を提供する場合にのみ使用します。

      let myEncoder = JSONEncoder()
      myEncoder.dateFormat = …
      let myDecoder = JSONDecoder()
      myDecoder.dateFormat = …
      let coder: Coder = .custom(myEncoder, myDecoder)

    デフォルト:.default

    構成 フェッチ構成 オプション。返されるレコードを定義するフィルター、ページネーションページサイズ制限、取得するフィールド、フィールドに含める内容など、取得されたレコードに適用する構成。

    デフォルト:nil - すべてのレコードが返されます。

    表 : 36. 返される内容
    タイプ 説明
    paginator&lt;data> 成功: ページングされた デコード可能な モデルを含むページネータオブジェクト。

    エラー:NowDataError

    • accessToken(AccessTokenProviderError)
      • AccessTokenProviderError:アクセストークンプロバイダーのエラーコードまたはメッセージ。
        • accessTokenRetrievalFailed
        • userSessionError(_ error: Error)

      アクセストークンにエラーがある場合にスローされます。

    • attachment検証

      添付ファイルが検証に失敗した場合にスローされます。

    • badResponse(statusCode: HTTPStatusCode)
      • HTTPStatusCode:インスタンスから受信したステータスコード。

      要求が予期しない応答を返すとスローされます

    • cannotDecodeModel(DecodeError)
      • DecodingError:デコードエラーが検出されました。

      コード可能なモデルを JSON からデコードできない場合にスローされます。

    • cannotDecodeProperty(タイプ: 任意, 送信元: 文字列)
      • type:文字列からデコードするラップされたタイプ。
      • from:指定された型にデコードする文字列。

      文字列でラップされた値を JSON からデコードできない場合にスローされます。

    • cannotEncodeModel(EncodingError)
      • EncodingError:エンコードエラーが検出されました。

      Codable モデルを JSON にエンコードできない場合にスローされます。

    • cannotParseResponse

      インスタンスからの応答を予期される形式に解析できない場合にスローされます。

    • 無効な URL

      URL を形成できない場合にスローされます。たとえば、文字列に URL で無効な文字が含まれている場合や、空の文字列である場合などです。

    • 欠損添付ファイルメタデータ

      添付ファイルのメタデータヘッダーがない場合にスローされます。

    • missingServiceConfiguration

      予期されるサービス構成がない場合にスローされます。

    • 欠損 SysID

      予期される sys_id パラメーターがない場合にスローされます。

    • network(NetworkServiceError)
      • genericError(文字列)
      • 操作がキャンセルされました
      • サービス無効
      • serverError(エラー)
      • システムエラー (エラー)

      ネットワーク サービスでエラーが発生したときにスローされます。

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

    struct User: Codable {
      var name: String
    }
    
    let service: NowTableService = ...
    let paginator: Paginator<[User]> = service.paginator(from: "sys_user", path: "result")
    注:
    Table API は、常に結果パスの下にネストされた結果を返すため、パラメーターを安全に削除できますpath

    NowTableService - record(sysId: SysID, from tableName: String, configuration: FieldReadConfiguration? = nil) async throws

    インスタンスの ServiceNow 指定されたテーブルから指定されたレコードを取得します。

    - パブリッシャーは、カスタム のCodableモデルにデコードできるデータを出力するか、関数を使用することもできます NowTableService - paginator&lt;Model: Decodable>(from tableName: String, path: String = Constants.resultPath, coder: Coder = .default, configuration: FetchConfiguration? = nil) または、便利な関数 convertToRecords() を使用して、データを NowRecord オブジェクトに変換することもできます。NowRecords を出力するようにパブリッシャーを変換する方法を次に示します。
    let dataPublisher: AnyPublisher<Data, NowDataError> = ...
    let recordsPublisher: AnyPublisher<[NowRecord], NowDataError> = myPublisher.convertToRecords()
    表 : 37. パラメーター
    名前 タイプ 説明
    sysId 文字列 インスタンスから ServiceNow 返すレコードのSys_id。
    テーブル名から 文字列 インシデントなどのレコードの取得元のテーブルの名前。
    構成 フェッチ構成 オプション。返されるレコードを定義するフィルター、ページネーションページサイズ制限、取得するフィールド、フィールドに含める内容など、取得されたレコードに適用する構成。

    デフォルト:nil - すべてのレコードが返されます。

    表 : 38. 返される内容
    タイプ 説明
    データ メソッドが成功した場合に返されます。指定されたレコードを含むデータオブジェクト。
    NowDataError メソッドが失敗したときにスローされます。
    • accessToken(AccessTokenProviderError)
      • AccessTokenProviderError:アクセストークンプロバイダーのエラーコードまたはメッセージ。
        • accessTokenRetrievalFailed
        • userSessionError(_ error: Error)

      アクセストークンにエラーがある場合にスローされます。

    • attachment検証

      添付ファイルが検証に失敗した場合にスローされます。

    • badResponse(statusCode: HTTPStatusCode)
      • HTTPStatusCode:インスタンスから受信したステータスコード。

      要求が予期しない応答を返すとスローされます

    • cannotDecodeModel(DecodeError)
      • DecodingError:デコードエラーが検出されました。

      コード可能なモデルを JSON からデコードできない場合にスローされます。

    • cannotDecodeProperty(タイプ: 任意, 送信元: 文字列)
      • type:文字列からデコードするラップされたタイプ。
      • from:指定された型にデコードする文字列。

      文字列でラップされた値を JSON からデコードできない場合にスローされます。

    • cannotEncodeModel(EncodingError)
      • EncodingError:エンコードエラーが検出されました。

      Codable モデルを JSON にエンコードできない場合にスローされます。

    • cannotParseResponse

      インスタンスからの応答を予期される形式に解析できない場合にスローされます。

    • 無効な URL

      URL を形成できない場合にスローされます。たとえば、文字列に URL で無効な文字が含まれている場合や、空の文字列である場合などです。

    • 欠損添付ファイルメタデータ

      添付ファイルのメタデータヘッダーがない場合にスローされます。

    • missingServiceConfiguration

      予期されるサービス構成がない場合にスローされます。

    • 欠損 SysID

      予期される sys_id パラメーターがない場合にスローされます。

    • network(NetworkServiceError)
      • genericError(文字列)
      • 操作がキャンセルされました
      • サービス無効
      • serverError(エラー)
      • システムエラー (エラー)

      ネットワーク サービスでエラーが発生したときにスローされます。

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

    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 - record(with sysId: SysID, from tableName: String, configuration: FieldReadConfiguration, completion: @escaping (Result&lt;Data, NowDataError>)

    指定されたテーブルから指定されたレコードを取得し、レコードが取得された後に完了ハンドラーを実行します。

    必要に応じて、返された結果をカスタムのCodableモデルにデコードするか、代わりに関数を使用できます NowTableService - paginator&lt;Model: Decodable>(from tableName: String, path: String = Constants.resultPath, coder: Coder = .default, configuration: FetchConfiguration? = nil)または、便利な関数 convertToRecords() を使用して、データを NowRecord オブジェクトに変換することもできます。NowRecords を出力するようにパブリッシャーを変換する方法を次に示します。
    let dataPublisher: AnyPublisher<Data, NowDataError> = ...
    let recordsPublisher: AnyPublisher<[NowRecord], NowDataError> = myResult.convertToRecords()
    結果セットが大きい場合は、関数を使用して NowTableService - paginator(from tableName: String, configuration: FetchConfiguration? = nil) ページネーションされた結果をフェッチします。
    表 : 39. パラメーター
    名前 タイプ 説明
    sysId 文字列 インスタンスから ServiceNow 返すレコードのSys_id。
    テーブル名から 文字列 インシデントなどのレコードの取得元のテーブルの名前。
    構成 フェッチ構成 オプション。返されるレコードを定義するフィルター、ページネーションページサイズ制限、取得するフィールド、フィールドに含める内容など、取得されたレコードに適用する構成。

    デフォルト:nil - すべてのレコードが返されます。

    完了 @escaping (result&lt;data, nowDataError>) レコードが取得された後に実行する完了ハンドラー。
    戻り値:
    • 成功:データ - 要求されたレコード
    • エラー:NowDataError
      • accessToken(AccessTokenProviderError)
        • AccessTokenProviderError:アクセストークンプロバイダーのエラーコードまたはメッセージ。
          • accessTokenRetrievalFailed
          • userSessionError(_ error: Error)

        アクセストークンにエラーがある場合にスローされます。

      • attachment検証

        添付ファイルが検証に失敗した場合にスローされます。

      • badResponse(statusCode: HTTPStatusCode)
        • HTTPStatusCode:インスタンスから受信したステータスコード。

        要求が予期しない応答を返すとスローされます

      • cannotDecodeModel(DecodeError)
        • DecodingError:デコードエラーが検出されました。

        コード可能なモデルを JSON からデコードできない場合にスローされます。

      • cannotDecodeProperty(タイプ: 任意, 送信元: 文字列)
        • type:文字列からデコードするラップされたタイプ。
        • from:指定された型にデコードする文字列。

        文字列でラップされた値を JSON からデコードできない場合にスローされます。

      • cannotEncodeModel(EncodingError)
        • EncodingError:エンコードエラーが検出されました。

        Codable モデルを JSON にエンコードできない場合にスローされます。

      • cannotParseResponse

        インスタンスからの応答を予期される形式に解析できない場合にスローされます。

      • 無効な URL

        URL を形成できない場合にスローされます。たとえば、文字列に URL で無効な文字が含まれている場合や、空の文字列である場合などです。

      • 欠損添付ファイルメタデータ

        添付ファイルのメタデータヘッダーがない場合にスローされます。

      • missingServiceConfiguration

        予期されるサービス構成がない場合にスローされます。

      • 欠損 SysID

        予期される sys_id パラメーターがない場合にスローされます。

      • network(NetworkServiceError)
        • genericError(文字列)
        • 操作がキャンセルされました
        • サービス無効
        • serverError(エラー)
        • システムエラー (エラー)

        ネットワーク サービスでエラーが発生したときにスローされます。

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

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

    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 - record(sysId: SysID, fromテーブルName: 文字列, configuration: FieldReadConfiguration? = nil)

    インスタンスの指定されたテーブルから指定されたレコードを取得するパブリッシャーを作成します ServiceNow

    注:
    このメソッドは廃止されました。代わりに、メソッドの async/await 実装を使用する必要があります。
    - パブリッシャーは、カスタム のCodableモデルにデコードできるデータを出力するか、関数を使用することもできます NowTableService - paginator&lt;Model: Decodable>(from tableName: String, path: String = Constants.resultPath, coder: Coder = .default, configuration: FetchConfiguration? = nil) または、便利な関数 convertToRecords() を使用して、データを NowRecord オブジェクトに変換することもできます。NowRecords を出力するようにパブリッシャーを変換する方法を次に示します。
    let dataPublisher: AnyPublisher<Data, NowDataError> = ...
    let recordsPublisher: AnyPublisher<[NowRecord], NowDataError> = myPublisher.convertToRecords()
    表 : 41. パラメーター
    名前 タイプ 説明
    sysId 文字列 インスタンスから ServiceNow 返すレコードのSys_id。
    テーブル名から 文字列 インシデントなどのレコードの取得元のテーブルの名前。
    構成 フェッチ構成 オプション。返されるレコードを定義するフィルター、ページネーションページサイズ制限、取得するフィールド、フィールドに含める内容など、取得されたレコードに適用する構成。

    デフォルト:nil - すべてのレコードが返されます。

    表 : 42. 返される内容
    タイプ 説明
    AnyPublisher&lt;Data, NowDataError> 成功:指定されたレコードを含むデータオブジェクト。

    エラー:NowDataError

    • accessToken(AccessTokenProviderError)
      • AccessTokenProviderError:アクセストークンプロバイダーのエラーコードまたはメッセージ。
        • accessTokenRetrievalFailed
        • userSessionError(_ error: Error)

      アクセストークンにエラーがある場合にスローされます。

    • attachment検証

      添付ファイルが検証に失敗した場合にスローされます。

    • badResponse(statusCode: HTTPStatusCode)
      • HTTPStatusCode:インスタンスから受信したステータスコード。

      要求が予期しない応答を返すとスローされます

    • cannotDecodeModel(DecodeError)
      • DecodingError:デコードエラーが検出されました。

      コード可能なモデルを JSON からデコードできない場合にスローされます。

    • cannotDecodeProperty(タイプ: 任意, 送信元: 文字列)
      • type:文字列からデコードするラップされたタイプ。
      • from:指定された型にデコードする文字列。

      文字列でラップされた値を JSON からデコードできない場合にスローされます。

    • cannotEncodeModel(EncodingError)
      • EncodingError:エンコードエラーが検出されました。

      Codable モデルを JSON にエンコードできない場合にスローされます。

    • cannotParseResponse

      インスタンスからの応答を予期される形式に解析できない場合にスローされます。

    • 無効な URL

      URL を形成できない場合にスローされます。たとえば、文字列に URL で無効な文字が含まれている場合や、空の文字列である場合などです。

    • 欠損添付ファイルメタデータ

      添付ファイルのメタデータヘッダーがない場合にスローされます。

    • missingServiceConfiguration

      予期されるサービス構成がない場合にスローされます。

    • 欠損 SysID

      予期される sys_id パラメーターがない場合にスローされます。

    • network(NetworkServiceError)
      • genericError(文字列)
      • 操作がキャンセルされました
      • サービス無効
      • serverError(エラー)
      • システムエラー (エラー)

      ネットワーク サービスでエラーが発生したときにスローされます。

    この例は、指定されたフィールドを使用して、指定されたテーブルから指定されたレコードを取得する関数を作成する方法を示しています。呼び出しの出力は 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 - records(from tableName: 文字列, configuration: FetchConfiguration? = nil) 非同期スロー

    指定されたテーブルからレコードを取得します。

    ザ・ パブリッシャーは、カスタム のCodableモデルにデコードできるデータを出力するか、関数を使用することもできます NowTableService - paginator&lt;Model: Decodable>(from tableName: String, path: String = Constants.resultPath, coder: Coder = .default, configuration: FetchConfiguration? = nil) または、便利な関数 convertToRecords() を使用して、データを NowRecord オブジェクトに変換することもできます。NowRecords を出力するようにパブリッシャーを変換する方法を次に示します。
    let dataPublisher: AnyPublisher<Data, NowDataError> = ...
    let recordsPublisher: AnyPublisher<[NowRecord], NowDataError> = myPublisher.convertToRecords()
    結果セットが大きい場合は、関数を使用して NowTableService - paginator(from tableName: String, configuration: FetchConfiguration? = nil) ページネーションされた結果をフェッチします。
    表 : 43. パラメーター
    名前 タイプ 説明
    テーブル名から 文字列 インシデントなどのレコードの取得元のテーブルの名前。
    構成 フェッチ構成 オプション。返されるレコードを定義するフィルター、ページネーションページサイズ制限、取得するフィールド、フィールドに含める内容など、取得されたレコードに適用する構成。

    デフォルト:nil - すべてのレコードが返されます。

    表 : 44. 返される内容
    タイプ 説明
    データ メソッドが成功した場合に返されます。指定されたレコードを含むデータオブジェクト。
    NowDataError メソッドが失敗したときにスローされます。
    • accessToken(AccessTokenProviderError)
      • AccessTokenProviderError:アクセストークンプロバイダーのエラーコードまたはメッセージ。
        • accessTokenRetrievalFailed
        • userSessionError(_ error: Error)

      アクセストークンにエラーがある場合にスローされます。

    • attachment検証

      添付ファイルが検証に失敗した場合にスローされます。

    • badResponse(statusCode: HTTPStatusCode)
      • HTTPStatusCode:インスタンスから受信したステータスコード。

      要求が予期しない応答を返すとスローされます

    • cannotDecodeModel(DecodeError)
      • DecodingError:デコードエラーが検出されました。

      コード可能なモデルを JSON からデコードできない場合にスローされます。

    • cannotDecodeProperty(タイプ: 任意, 送信元: 文字列)
      • type:文字列からデコードするラップされたタイプ。
      • from:指定された型にデコードする文字列。

      文字列でラップされた値を JSON からデコードできない場合にスローされます。

    • cannotEncodeModel(EncodingError)
      • EncodingError:エンコードエラーが検出されました。

      Codable モデルを JSON にエンコードできない場合にスローされます。

    • cannotParseResponse

      インスタンスからの応答を予期される形式に解析できない場合にスローされます。

    • 無効な URL

      URL を形成できない場合にスローされます。たとえば、文字列に URL で無効な文字が含まれている場合や、空の文字列である場合などです。

    • 欠損添付ファイルメタデータ

      添付ファイルのメタデータヘッダーがない場合にスローされます。

    • missingServiceConfiguration

      予期されるサービス構成がない場合にスローされます。

    • 欠損 SysID

      予期される sys_id パラメーターがない場合にスローされます。

    • network(NetworkServiceError)
      • genericError(文字列)
      • 操作がキャンセルされました
      • サービス無効
      • serverError(エラー)
      • システムエラー (エラー)

      ネットワーク サービスでエラーが発生したときにスローされます。

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

    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 - records(from tableName: String, configuration: FetchConfiguration? = nil, completion: @escaping (Result&lt;Data, NowDataError>))

    指定されたテーブルからレコードを取得し、レコードが取得された後にハンドラーを実行します completion

    必要に応じて、返された結果をカスタムのCodableモデルにデコードするか、代わりに関数を使用できます NowTableService - paginator&lt;Model: Decodable>(from tableName: String, path: String = Constants.resultPath, coder: Coder = .default, configuration: FetchConfiguration? = nil)または、便利な関数 convertToRecords() を使用して、データを NowRecord オブジェクトに変換することもできます。NowRecords を出力するようにパブリッシャーを変換する方法を次に示します。
    let dataPublisher: AnyPublisher<Data, NowDataError> = ...
    let recordsPublisher: AnyPublisher<[NowRecord], NowDataError> = myResult.convertToRecords()
    結果セットが大きい場合は、関数を使用して NowTableService - paginator(from tableName: String, configuration: FetchConfiguration? = nil) ページネーションされた結果をフェッチします。
    表 : 45. パラメーター
    名前 タイプ 説明
    テーブル名の内 文字列 レコードを書き込むテーブルの名前 ( インシデントなど)。
    構成 フェッチ構成 オプション。返されるレコードを定義するフィルター、ページネーションページサイズ制限、取得するフィールド、フィールドに含める内容など、取得されたレコードに適用する構成。

    デフォルト:nil - すべてのレコードが返されます。

    完了 @escaping (result&lt;data, nowDataError>) レコードが取得された後に実行する完了ハンドラー。
    戻り値:
    • 成功:データ - 要求されたレコード
    • エラー:NowDataError
      • accessToken(AccessTokenProviderError)
        • AccessTokenProviderError:アクセストークンプロバイダーのエラーコードまたはメッセージ。
          • accessTokenRetrievalFailed
          • userSessionError(_ error: Error)

        アクセストークンにエラーがある場合にスローされます。

      • attachment検証

        添付ファイルが検証に失敗した場合にスローされます。

      • badResponse(statusCode: HTTPStatusCode)
        • HTTPStatusCode:インスタンスから受信したステータスコード。

        要求が予期しない応答を返すとスローされます

      • cannotDecodeModel(DecodeError)
        • DecodingError:デコードエラーが検出されました。

        コード可能なモデルを JSON からデコードできない場合にスローされます。

      • cannotDecodeProperty(タイプ: 任意, 送信元: 文字列)
        • type:文字列からデコードするラップされたタイプ。
        • from:指定された型にデコードする文字列。

        文字列でラップされた値を JSON からデコードできない場合にスローされます。

      • cannotEncodeModel(EncodingError)
        • EncodingError:エンコードエラーが検出されました。

        Codable モデルを JSON にエンコードできない場合にスローされます。

      • cannotParseResponse

        インスタンスからの応答を予期される形式に解析できない場合にスローされます。

      • 無効な URL

        URL を形成できない場合にスローされます。たとえば、文字列に URL で無効な文字が含まれている場合や、空の文字列である場合などです。

      • 欠損添付ファイルメタデータ

        添付ファイルのメタデータヘッダーがない場合にスローされます。

      • missingServiceConfiguration

        予期されるサービス構成がない場合にスローされます。

      • 欠損 SysID

        予期される sys_id パラメーターがない場合にスローされます。

      • network(NetworkServiceError)
        • genericError(文字列)
        • 操作がキャンセルされました
        • サービス無効
        • serverError(エラー)
        • システムエラー (エラー)

        ネットワーク サービスでエラーが発生したときにスローされます。

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

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

    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 - records(from tableName: String, configuration: FetchConfiguration? = nil)

    指定したテーブルからレコードを取得できるようにするパブリッシャーを作成します。

    注:
    このメソッドは廃止されました。代わりに、メソッドの async/await 実装を使用する必要があります。
    ザ・ パブリッシャーは、カスタム のCodableモデルにデコードできるデータを出力するか、関数を使用することもできます NowTableService - paginator&lt;Model: Decodable>(from tableName: String, path: String = Constants.resultPath, coder: Coder = .default, configuration: FetchConfiguration? = nil) または、便利な関数 convertToRecords() を使用して、データを NowRecord オブジェクトに変換することもできます。NowRecords を出力するようにパブリッシャーを変換する方法を次に示します。
    let dataPublisher: AnyPublisher<Data, NowDataError> = ...
    let recordsPublisher: AnyPublisher<[NowRecord], NowDataError> = myPublisher.convertToRecords()
    結果セットが大きい場合は、関数を使用して NowTableService - paginator(from tableName: String, configuration: FetchConfiguration? = nil) ページネーションされた結果をフェッチします。
    表 : 47. パラメーター
    名前 タイプ 説明
    テーブル名から 文字列 インシデントなどのレコードの取得元のテーブルの名前。
    構成 フェッチ構成 オプション。返されるレコードを定義するフィルター、ページネーションページサイズ制限、取得するフィールド、フィールドに含める内容など、取得されたレコードに適用する構成。

    デフォルト:nil - すべてのレコードが返されます。

    表 : 48. 返される内容
    タイプ 説明
    AnyPublisher&lt;Data, NowDataError> 成功:指定されたレコードを含むデータオブジェクト。

    エラー:NowDataError

    • accessToken(AccessTokenProviderError)
      • AccessTokenProviderError:アクセストークンプロバイダーのエラーコードまたはメッセージ。
        • accessTokenRetrievalFailed
        • userSessionError(_ error: Error)

      アクセストークンにエラーがある場合にスローされます。

    • attachment検証

      添付ファイルが検証に失敗した場合にスローされます。

    • badResponse(statusCode: HTTPStatusCode)
      • HTTPStatusCode:インスタンスから受信したステータスコード。

      要求が予期しない応答を返すとスローされます

    • cannotDecodeModel(DecodeError)
      • DecodingError:デコードエラーが検出されました。

      コード可能なモデルを JSON からデコードできない場合にスローされます。

    • cannotDecodeProperty(タイプ: 任意, 送信元: 文字列)
      • type:文字列からデコードするラップされたタイプ。
      • from:指定された型にデコードする文字列。

      文字列でラップされた値を JSON からデコードできない場合にスローされます。

    • cannotEncodeModel(EncodingError)
      • EncodingError:エンコードエラーが検出されました。

      Codable モデルを JSON にエンコードできない場合にスローされます。

    • cannotParseResponse

      インスタンスからの応答を予期される形式に解析できない場合にスローされます。

    • 無効な URL

      URL を形成できない場合にスローされます。たとえば、文字列に URL で無効な文字が含まれている場合や、空の文字列である場合などです。

    • 欠損添付ファイルメタデータ

      添付ファイルのメタデータヘッダーがない場合にスローされます。

    • missingServiceConfiguration

      予期されるサービス構成がない場合にスローされます。

    • 欠損 SysID

      予期される sys_id パラメーターがない場合にスローされます。

    • network(NetworkServiceError)
      • genericError(文字列)
      • 操作がキャンセルされました
      • サービス無効
      • serverError(エラー)
      • システムエラー (エラー)

      ネットワーク サービスでエラーが発生したときにスローされます。

    この例は、指定されたテーブルから複数のレコードをフェッチする関数を作成する方法を示しています。将来のある時点で実行されるように要求をスケジュールし、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&lt;Model: SysIdentifiableModel>(_ model: Model, in tableName: String, coder: Coder = .default, writeOptions: FieldWriteOptions? = nil, configuration: FetchConfiguration? = nil) 非同期スロー

    指定されたテーブル内の指定されたコード化可能モデルを更新します。

    表 : 49. パラメーター
    名前 タイプ 説明
    モデル モデル テーブルで更新する SysIdentififiableModel モデル。
    テーブル名の内 文字列 レコードを書き込むテーブルの名前 ( インシデントなど)。
    コーダー コーダー オプション。インスタンスとの間でServiceNow送受信されるデータのエンコードまたはデコードに使用するコーダー
    可能な値:
    • default:デフォルトのエンコーダーは、デバイスのロケールタイムゾーンを使用して yyy-MM-dd HH:mm:ss 形式を使用して日付を書式設定します。
    • custom(JSONEncoder, JSONDecoder):

      カスタムコーダーを使用して、JSON のデコード/エンコードをよりきめ細かく制御します。

      この列挙体は、特別な日付形式、タイム ゾーン、ロケールを使用する場合など、独自の JSONEncoderJSONDecoder を提供する場合にのみ使用します。

      let myEncoder = JSONEncoder()
      myEncoder.dateFormat = …
      let myDecoder = JSONDecoder()
      myDecoder.dateFormat = …
      let coder: Coder = .custom(myEncoder, myDecoder)

    デフォルト:.default

    書き込みオプション フィールド書き込みオプション オプション。レコードに書き込まれるデータに適用する構成オプション。

    デフォルト:nil

    構成 フェッチ構成 オプション。返されるレコードを定義するフィルター、ページネーションページサイズ制限、取得するフィールド、フィールドに含める内容など、取得されたレコードに適用する構成。

    デフォルト:nil - すべてのレコードが返されます。

    表 : 50. 返される内容
    タイプ 説明
    モデル メソッドが成功した場合に返されます。指定されたテーブルで更新されたデコード可能なモデル。
    NowDataError メソッドが失敗したときにスローされます。
    • accessToken(AccessTokenProviderError)
      • AccessTokenProviderError:アクセストークンプロバイダーのエラーコードまたはメッセージ。
        • accessTokenRetrievalFailed
        • userSessionError(_ error: Error)

      アクセストークンにエラーがある場合にスローされます。

    • attachment検証

      添付ファイルが検証に失敗した場合にスローされます。

    • badResponse(statusCode: HTTPStatusCode)
      • HTTPStatusCode:インスタンスから受信したステータスコード。

      要求が予期しない応答を返すとスローされます

    • cannotDecodeModel(DecodeError)
      • DecodingError:デコードエラーが検出されました。

      コード可能なモデルを JSON からデコードできない場合にスローされます。

    • cannotDecodeProperty(タイプ: 任意, 送信元: 文字列)
      • type:文字列からデコードするラップされたタイプ。
      • from:指定された型にデコードする文字列。

      文字列でラップされた値を JSON からデコードできない場合にスローされます。

    • cannotEncodeModel(EncodingError)
      • EncodingError:エンコードエラーが検出されました。

      Codable モデルを JSON にエンコードできない場合にスローされます。

    • cannotParseResponse

      インスタンスからの応答を予期される形式に解析できない場合にスローされます。

    • 無効な URL

      URL を形成できない場合にスローされます。たとえば、文字列に URL で無効な文字が含まれている場合や、空の文字列である場合などです。

    • 欠損添付ファイルメタデータ

      添付ファイルのメタデータヘッダーがない場合にスローされます。

    • missingServiceConfiguration

      予期されるサービス構成がない場合にスローされます。

    • 欠損 SysID

      予期される sys_id パラメーターがない場合にスローされます。

    • network(NetworkServiceError)
      • genericError(文字列)
      • 操作がキャンセルされました
      • サービス無効
      • serverError(エラー)
      • システムエラー (エラー)

      ネットワーク サービスでエラーが発生したときにスローされます。

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

    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&lt;Model: SysIdentifiableModel>(_ model: Model, in tableName: String, coder: Coder = .default, writeOptions: FieldWriteOptions? = nil, configuration: FetchConfiguration? = nil, completion: @escaping (Result&lt;Model, NowDataError>))

    指定されたテーブル内の指定されたコード化可能モデルを更新し、 completion ハンドラーを実行します。

    表 : 51. パラメーター
    名前 タイプ 説明
    モデル モデル テーブルで更新する SysIdentififiableModel モデル。
    テーブル名の内 文字列 レコードを書き込むテーブルの名前 ( インシデントなど)。
    コーダー コーダー オプション。インスタンスとの間でServiceNow送受信されるデータのエンコードまたはデコードに使用するコーダー
    可能な値:
    • default:デフォルトのエンコーダーは、デバイスのロケールタイムゾーンを使用して yyy-MM-dd HH:mm:ss 形式を使用して日付を書式設定します。
    • custom(JSONEncoder, JSONDecoder):

      カスタムコーダーを使用して、JSON のデコード/エンコードをよりきめ細かく制御します。

      この列挙体は、特別な日付形式、タイム ゾーン、ロケールを使用する場合など、独自の JSONEncoderJSONDecoder を提供する場合にのみ使用します。

      let myEncoder = JSONEncoder()
      myEncoder.dateFormat = …
      let myDecoder = JSONDecoder()
      myDecoder.dateFormat = …
      let coder: Coder = .custom(myEncoder, myDecoder)

    デフォルト:.default

    書き込みオプション フィールド書き込みオプション オプション。レコードに書き込まれるデータに適用する構成オプション。

    デフォルト:nil

    構成 フェッチ構成 オプション。返されるレコードを定義するフィルター、ページネーションページサイズ制限、取得するフィールド、フィールドに含める内容など、取得されたレコードに適用する構成。

    デフォルト:nil - すべてのレコードが返されます。

    完了 @escaping (result&lt;model, nowDataError>) 指定されたコード化可能モデルを更新した後に実行する完了ハンドラー。
    戻り値:
    • 成功:モデル
    • エラー:NowDataError
      • accessToken(AccessTokenProviderError)
        • AccessTokenProviderError:アクセストークンプロバイダーのエラーコードまたはメッセージ。
          • accessTokenRetrievalFailed
          • userSessionError(_ error: Error)

        アクセストークンにエラーがある場合にスローされます。

      • attachment検証

        添付ファイルが検証に失敗した場合にスローされます。

      • badResponse(statusCode: HTTPStatusCode)
        • HTTPStatusCode:インスタンスから受信したステータスコード。

        要求が予期しない応答を返すとスローされます

      • cannotDecodeModel(DecodeError)
        • DecodingError:デコードエラーが検出されました。

        コード可能なモデルを JSON からデコードできない場合にスローされます。

      • cannotDecodeProperty(タイプ: 任意, 送信元: 文字列)
        • type:文字列からデコードするラップされたタイプ。
        • from:指定された型にデコードする文字列。

        文字列でラップされた値を JSON からデコードできない場合にスローされます。

      • cannotEncodeModel(EncodingError)
        • EncodingError:エンコードエラーが検出されました。

        Codable モデルを JSON にエンコードできない場合にスローされます。

      • cannotParseResponse

        インスタンスからの応答を予期される形式に解析できない場合にスローされます。

      • 無効な URL

        URL を形成できない場合にスローされます。たとえば、文字列に URL で無効な文字が含まれている場合や、空の文字列である場合などです。

      • 欠損添付ファイルメタデータ

        添付ファイルのメタデータヘッダーがない場合にスローされます。

      • missingServiceConfiguration

        予期されるサービス構成がない場合にスローされます。

      • 欠損 SysID

        予期される sys_id パラメーターがない場合にスローされます。

      • network(NetworkServiceError)
        • genericError(文字列)
        • 操作がキャンセルされました
        • サービス無効
        • serverError(エラー)
        • システムエラー (エラー)

        ネットワーク サービスでエラーが発生したときにスローされます。

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

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

    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&lt;Model: SysIdentifiableModel>(_ model: Model, in tableName: String, coder: Coder = .default, writeOptions: FieldWriteOptions? = nil, configuration: FetchConfiguration? = nil)

    指定されたテーブル内の指定されたコード化可能モデルを更新します。

    注:
    このメソッドは廃止されました。代わりに、メソッドの async/await 実装を使用する必要があります。
    表 : 53. パラメーター
    名前 タイプ 説明
    モデル モデル テーブルで更新する SysIdentififiableModel モデル。
    テーブル名の内 文字列 レコードを書き込むテーブルの名前 ( インシデントなど)。
    コーダー コーダー オプション。インスタンスとの間でServiceNow送受信されるデータのエンコードまたはデコードに使用するコーダー
    可能な値:
    • default:デフォルトのエンコーダーは、デバイスのロケールタイムゾーンを使用して yyy-MM-dd HH:mm:ss 形式を使用して日付を書式設定します。
    • custom(JSONEncoder, JSONDecoder):

      カスタムコーダーを使用して、JSON のデコード/エンコードをよりきめ細かく制御します。

      この列挙体は、特別な日付形式、タイム ゾーン、ロケールを使用する場合など、独自の JSONEncoderJSONDecoder を提供する場合にのみ使用します。

      let myEncoder = JSONEncoder()
      myEncoder.dateFormat = …
      let myDecoder = JSONDecoder()
      myDecoder.dateFormat = …
      let coder: Coder = .custom(myEncoder, myDecoder)

    デフォルト:.default

    書き込みオプション フィールド書き込みオプション オプション。レコードに書き込まれるデータに適用する構成オプション。

    デフォルト:nil

    構成 フェッチ構成 オプション。返されるレコードを定義するフィルター、ページネーションページサイズ制限、取得するフィールド、フィールドに含める内容など、取得されたレコードに適用する構成。

    デフォルト:nil - すべてのレコードが返されます。

    表 : 54. 返される内容
    タイプ 説明
    AnyPublisher&lt;Model, NowDataError> 成功:指定されたテーブルで更新されたデコード可能なモデル。

    エラー:NowDataError

    • accessToken(AccessTokenProviderError)
      • AccessTokenProviderError:アクセストークンプロバイダーのエラーコードまたはメッセージ。
        • accessTokenRetrievalFailed
        • userSessionError(_ error: Error)

      アクセストークンにエラーがある場合にスローされます。

    • attachment検証

      添付ファイルが検証に失敗した場合にスローされます。

    • badResponse(statusCode: HTTPStatusCode)
      • HTTPStatusCode:インスタンスから受信したステータスコード。

      要求が予期しない応答を返すとスローされます

    • cannotDecodeModel(DecodeError)
      • DecodingError:デコードエラーが検出されました。

      コード可能なモデルを JSON からデコードできない場合にスローされます。

    • cannotDecodeProperty(タイプ: 任意, 送信元: 文字列)
      • type:文字列からデコードするラップされたタイプ。
      • from:指定された型にデコードする文字列。

      文字列でラップされた値を JSON からデコードできない場合にスローされます。

    • cannotEncodeModel(EncodingError)
      • EncodingError:エンコードエラーが検出されました。

      Codable モデルを JSON にエンコードできない場合にスローされます。

    • cannotParseResponse

      インスタンスからの応答を予期される形式に解析できない場合にスローされます。

    • 無効な URL

      URL を形成できない場合にスローされます。たとえば、文字列に URL で無効な文字が含まれている場合や、空の文字列である場合などです。

    • 欠損添付ファイルメタデータ

      添付ファイルのメタデータヘッダーがない場合にスローされます。

    • missingServiceConfiguration

      予期されるサービス構成がない場合にスローされます。

    • 欠損 SysID

      予期される sys_id パラメーターがない場合にスローされます。

    • network(NetworkServiceError)
      • genericError(文字列)
      • 操作がキャンセルされました
      • サービス無効
      • serverError(エラー)
      • システムエラー (エラー)

      ネットワーク サービスでエラーが発生したときにスローされます。

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

    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) 非同期スロー

    指定されたレコードを指定されたフィールドで更新します。

    データをカスタム のCodableモデルにデコードすることも、関数を使用することもできます NowTableService - paginator&lt;Model: Decodable>(from tableName: String, path: String = Constants.resultPath, coder: Coder = .default, configuration: FetchConfiguration? = nil)または、便利な関数 convertToRecords() を使用して、データを NowRecord オブジェクトに変換することもできます。NowRecords を出力するようにパブリッシャーを変換する方法を次に示します。
    let dataPublisher: AnyPublisher<Data, NowDataError> = ...
    let recordsPublisher: AnyPublisher<[NowRecord], NowDataError> = myPublisher.convertToRecords()
    注:
    レコード内のすべてのフィールドは更新できない場合があります。たとえば、 プリフィックス sys_ を持つフィールドは、通常、自動的に生成されるシステムパラメーターであり、更新することはできません。指定されておらず、システムによって自動生成されないフィールドは、関連付けられたデータタイプの null 値に設定されます。
    表 : 55. パラメーター
    名前 タイプ 説明
    sysId 文字列 インスタンスから ServiceNow 返すレコードのSys_id。
    フィールドあり [フィールド名: フィールド値] レコードに含めるフィールドの名前と値のペア。
    テーブル名の内 文字列 レコードを書き込むテーブルの名前 ( インシデントなど)。
    書き込みオプション フィールド書き込みオプション オプション。レコードに書き込まれるデータに適用する構成オプション。

    デフォルト:nil

    構成 フェッチ構成 オプション。返されるレコードを定義するフィルター、ページネーションページサイズ制限、取得するフィールド、フィールドに含める内容など、取得されたレコードに適用する構成。

    デフォルト:nil - すべてのレコードが返されます。

    表 : 56. 返される内容
    タイプ 説明
    データ メソッドが成功した場合に返されます。更新されたレコードを含むデータオブジェクト。
    NowDataError メソッドが失敗したときにスローされます。
    • accessToken(AccessTokenProviderError)
      • AccessTokenProviderError:アクセストークンプロバイダーのエラーコードまたはメッセージ。
        • accessTokenRetrievalFailed
        • userSessionError(_ error: Error)

      アクセストークンにエラーがある場合にスローされます。

    • attachment検証

      添付ファイルが検証に失敗した場合にスローされます。

    • badResponse(statusCode: HTTPStatusCode)
      • HTTPStatusCode:インスタンスから受信したステータスコード。

      要求が予期しない応答を返すとスローされます

    • cannotDecodeModel(DecodeError)
      • DecodingError:デコードエラーが検出されました。

      コード可能なモデルを JSON からデコードできない場合にスローされます。

    • cannotDecodeProperty(タイプ: 任意, 送信元: 文字列)
      • type:文字列からデコードするラップされたタイプ。
      • from:指定された型にデコードする文字列。

      文字列でラップされた値を JSON からデコードできない場合にスローされます。

    • cannotEncodeModel(EncodingError)
      • EncodingError:エンコードエラーが検出されました。

      Codable モデルを JSON にエンコードできない場合にスローされます。

    • cannotParseResponse

      インスタンスからの応答を予期される形式に解析できない場合にスローされます。

    • 無効な URL

      URL を形成できない場合にスローされます。たとえば、文字列に URL で無効な文字が含まれている場合や、空の文字列である場合などです。

    • 欠損添付ファイルメタデータ

      添付ファイルのメタデータヘッダーがない場合にスローされます。

    • missingServiceConfiguration

      予期されるサービス構成がない場合にスローされます。

    • 欠損 SysID

      予期される sys_id パラメーターがない場合にスローされます。

    • network(NetworkServiceError)
      • genericError(文字列)
      • 操作がキャンセルされました
      • サービス無効
      • serverError(エラー)
      • システムエラー (エラー)

      ネットワーク サービスでエラーが発生したときにスローされます。

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

    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&lt;Data, NowDataError>)

    指定されたレコードを指定されたフィールドで更新し、 completion レコードが保存されるとハンドラーを実行します。

    必要に応じて、返された結果をカスタムのCodableモデルにデコードするか、代わりに関数を使用できます NowTableService - paginator&lt;Model: Decodable>(from tableName: String, path: String = Constants.resultPath, coder: Coder = .default, configuration: FetchConfiguration? = nil)または、便利な関数 convertToRecords() を使用して、データを NowRecord オブジェクトに変換することもできます。NowRecords を出力するようにパブリッシャーを変換する方法を次に示します。
    let dataPublisher: AnyPublisher<Data, NowDataError> = ...
    let recordsPublisher: AnyPublisher<[NowRecord], NowDataError> = myResult.convertToRecords()
    注:
    レコード内のすべてのフィールドは更新できない場合があります。たとえば、 プリフィックス sys_ を持つフィールドは、通常、自動的に生成されるシステムパラメーターであり、更新することはできません。指定されておらず、システムによって自動生成されないフィールドは、関連付けられたデータタイプの null 値に設定されます。
    表 : 57. パラメーター
    名前 タイプ 説明
    sysId 文字列 インスタンスから ServiceNow 返すレコードのSys_id。
    フィールドあり [フィールド名: フィールド値] レコードに含めるフィールドの名前と値のペア。
    テーブル名の内 文字列 レコードを書き込むテーブルの名前 ( インシデントなど)。
    書き込みオプション フィールド書き込みオプション オプション。レコードに書き込まれるデータに適用する構成オプション。

    デフォルト:nil

    構成 フェッチ構成 オプション。返されるレコードを定義するフィルター、ページネーションページサイズ制限、取得するフィールド、フィールドに含める内容など、取得されたレコードに適用する構成。

    デフォルト:nil - すべてのレコードが返されます。

    完了 @escaping (result&lt;data, nowDataError>) レコードが取得された後に実行する完了ハンドラー。
    戻り値:
    • 成功:データ - 要求されたレコード
    • エラー:NowDataError
      • accessToken(AccessTokenProviderError)
        • AccessTokenProviderError:アクセストークンプロバイダーのエラーコードまたはメッセージ。
          • accessTokenRetrievalFailed
          • userSessionError(_ error: Error)

        アクセストークンにエラーがある場合にスローされます。

      • attachment検証

        添付ファイルが検証に失敗した場合にスローされます。

      • badResponse(statusCode: HTTPStatusCode)
        • HTTPStatusCode:インスタンスから受信したステータスコード。

        要求が予期しない応答を返すとスローされます

      • cannotDecodeModel(DecodeError)
        • DecodingError:デコードエラーが検出されました。

        コード可能なモデルを JSON からデコードできない場合にスローされます。

      • cannotDecodeProperty(タイプ: 任意, 送信元: 文字列)
        • type:文字列からデコードするラップされたタイプ。
        • from:指定された型にデコードする文字列。

        文字列でラップされた値を JSON からデコードできない場合にスローされます。

      • cannotEncodeModel(EncodingError)
        • EncodingError:エンコードエラーが検出されました。

        Codable モデルを JSON にエンコードできない場合にスローされます。

      • cannotParseResponse

        インスタンスからの応答を予期される形式に解析できない場合にスローされます。

      • 無効な URL

        URL を形成できない場合にスローされます。たとえば、文字列に URL で無効な文字が含まれている場合や、空の文字列である場合などです。

      • 欠損添付ファイルメタデータ

        添付ファイルのメタデータヘッダーがない場合にスローされます。

      • missingServiceConfiguration

        予期されるサービス構成がない場合にスローされます。

      • 欠損 SysID

        予期される sys_id パラメーターがない場合にスローされます。

      • network(NetworkServiceError)
        • genericError(文字列)
        • 操作がキャンセルされました
        • サービス無効
        • serverError(エラー)
        • システムエラー (エラー)

        ネットワーク サービスでエラーが発生したときにスローされます。

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

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

    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)

    指定されたレコードを指定されたフィールドで更新します。

    注:
    このメソッドは廃止されました。代わりに、メソッドの async/await 実装を使用する必要があります。
    - パブリッシャーは、カスタム のCodableモデルにデコードできるデータを出力するか、関数を使用することもできます NowTableService - paginator&lt;Model: Decodable>(from tableName: String, path: String = Constants.resultPath, coder: Coder = .default, configuration: FetchConfiguration? = nil) または、便利な関数 convertToRecords() を使用して、データを NowRecord オブジェクトに変換することもできます。NowRecords を出力するようにパブリッシャーを変換する方法を次に示します。
    let dataPublisher: AnyPublisher<Data, NowDataError> = ...
    let recordsPublisher: AnyPublisher<[NowRecord], NowDataError> = myPublisher.convertToRecords()
    注:
    レコード内のすべてのフィールドは更新できない場合があります。たとえば、 プリフィックス sys_ を持つフィールドは、通常、自動的に生成されるシステムパラメーターであり、更新することはできません。指定されておらず、システムによって自動生成されないフィールドは、関連付けられたデータタイプの null 値に設定されます。
    表 : 59. パラメーター
    名前 タイプ 説明
    sysId 文字列 インスタンスから ServiceNow 返すレコードのSys_id。
    フィールドあり [フィールド名: フィールド値] レコードに含めるフィールドの名前と値のペア。
    テーブル名の内 文字列 レコードを書き込むテーブルの名前 ( インシデントなど)。
    書き込みオプション フィールド書き込みオプション オプション。レコードに書き込まれるデータに適用する構成オプション。

    デフォルト:nil

    構成 フェッチ構成 オプション。返されるレコードを定義するフィルター、ページネーションページサイズ制限、取得するフィールド、フィールドに含める内容など、取得されたレコードに適用する構成。

    デフォルト:nil - すべてのレコードが返されます。

    表 : 60. 返される内容
    タイプ 説明
    AnyPublisher&lt;Data, NowDataError> 成功:更新されたレコードを含むデータオブジェクト。

    エラー:NowDataError

    • accessToken(AccessTokenProviderError)
      • AccessTokenProviderError:アクセストークンプロバイダーのエラーコードまたはメッセージ。
        • accessTokenRetrievalFailed
        • userSessionError(_ error: Error)

      アクセストークンにエラーがある場合にスローされます。

    • attachment検証

      添付ファイルが検証に失敗した場合にスローされます。

    • badResponse(statusCode: HTTPStatusCode)
      • HTTPStatusCode:インスタンスから受信したステータスコード。

      要求が予期しない応答を返すとスローされます

    • cannotDecodeModel(DecodeError)
      • DecodingError:デコードエラーが検出されました。

      コード可能なモデルを JSON からデコードできない場合にスローされます。

    • cannotDecodeProperty(タイプ: 任意, 送信元: 文字列)
      • type:文字列からデコードするラップされたタイプ。
      • from:指定された型にデコードする文字列。

      文字列でラップされた値を JSON からデコードできない場合にスローされます。

    • cannotEncodeModel(EncodingError)
      • EncodingError:エンコードエラーが検出されました。

      Codable モデルを JSON にエンコードできない場合にスローされます。

    • cannotParseResponse

      インスタンスからの応答を予期される形式に解析できない場合にスローされます。

    • 無効な URL

      URL を形成できない場合にスローされます。たとえば、文字列に URL で無効な文字が含まれている場合や、空の文字列である場合などです。

    • 欠損添付ファイルメタデータ

      添付ファイルのメタデータヘッダーがない場合にスローされます。

    • missingServiceConfiguration

      予期されるサービス構成がない場合にスローされます。

    • 欠損 SysID

      予期される sys_id パラメーターがない場合にスローされます。

    • network(NetworkServiceError)
      • genericError(文字列)
      • 操作がキャンセルされました
      • サービス無効
      • serverError(エラー)
      • システムエラー (エラー)

      ネットワーク サービスでエラーが発生したときにスローされます。

    この例では、指定されたテーブル内のレコードを指定されたフィールドで更新する関数を作成する方法を示します。呼び出しの出力は 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)