添付ファイルと添付ファイルのメタデータを取得

  • リリースバージョン: Yokohama
  • 更新日 2025年01月30日
  • 所要時間:4分
  • NowAttachmentService API を使用すると、添付ファイルに対して CRUD 操作を実行し、ServiceNow インスタンスから添付ファイルのメタデータを取得できます。

    この API を使用すると、次のことができます。
    • 添付ファイルを ServiceNow インスタンスにアップロードし、特定のレコードに関連付けます。
    • 1 つ以上の添付ファイルをダウンロードします。
    • 添付ファイルを削除します。
    • 添付ファイルの計算されたハッシュと想定されるハッシュを比較して、添付ファイルを検証します。
    • 添付ファイルのメタデータをダウンロードします。このメタデータは、添付ファイルがアップロードされたときに ServiceNow インスタンスによって生成されます。

    添付ファイルの操作の詳細については、「 添付ファイル API」を参照してください。

    すべての NowAttachmentService メソッドには、結果データを返すための 3 つの実装が用意されています。1 つは結果を返す補完ハンドラーを呼び出し、もう 1 つは非同期/await を実行、もう 1 つは Combine パ ブリッシャー (非推奨) を返します。たとえば、 各 upload() メソッドは、指定された添付ファイルをアップロードし、指定されたレコードに関連付けます。ただし、 NowAttachmentService - upload(data: Data, configuration: NowAttachmentUploadConfiguration, progressUpdate: @escaping ProgressUpdate, completion: @escaping (Result<NowAttachmentMetadata, NowDataError>)) メソッドは結果を返す補完ハンドラーを呼び出し、 NowAttachmentService - upload(data: Data, configuration: NowAttachmentUploadConfiguration, progressUpdate: @escaping ProgressUpdate) 非同期スロー メソッドは async/await を実行し、 NowAttachmentService - upload(data: Data, configuration: NowAttachmentUploadConfiguration, progressUpdate: @escaping ProgressUpdate) メソッドは Combine パブリッシャーを返します。

    NowAttachmentService API を使用する前に、NowData をインポートしてから NowAttachmentService オブジェクトを初期化する必要があります。
    // Import the NowData framework
    import NowData
    
    func makeAttachmentService(instanceUrl: URL, 
      completion: @escaping ((Result<NowAttachmentService, NowServiceErrors>) → Void))

    添付ファイルのメタデータのページネーション

    NowAttachmentService メソッドを使用して、1 つ以上の添付ファイルの添付ファイルメタデータをダウンロードできます。複数の添付ファイルからメタデータをダウンロードする場合は、返される可能性のある大量のデータを簡単に反復処理できる Paginator オブジェクトを返す NowAttachmentService - attachmentMetadataPaginator(filter: フィルター, 制限: Int) メソッドを使用することをお勧めします。通常、ページネーションされた戻り結果を使用して、UITableView、UICollectionView (UIKit)、またはリスト (SwiftUI) 内に表示されるデータに無限スクロール機能を提供したり、結果のページの反復全般を簡略化したりします。

    Paginator オブジェクトを取得したら、そのパブリッシャーに登録してデータの受信を開始します。
    paginator.publisher
      .subscribe(on: DispatchQueue.global())
      .receive(on: DispatchQueue.main)
      .sink { ... }
      .store(in: &subscriptions)
    返された Paginator オブジェクトは、返されたレコードをページングできるようにする次のメソッドを提供します。
    • first()
    • last()
    • next()
    • previous()
    • リセット()
    注:
    一部の Paginator メソッドでは、フェッチするページがなくなった場合など、例外がスローされる場合があります。

    さらに、Paginator オブジェクトは、ページネーションされたデータに関するインサイトを取得できるようにするプロパティを提供します。これらのプロパティと使用可能なメソッドの詳細については、「 ページネーター API:iOS」を参照してください。