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

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

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

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

    すべての NowAttachmentService メソッドには、結果データを返すための 3 つの実装が用意されています。1 つは戻り値で完了ハンドラーを呼び出すもので、もう 1 つは async/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 throws メソッドは 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(フィルター:フィルター、制限:整数) メソッドを使用できます。通常、ページ分割された戻り値の結果は、UITableView、UICollectionView (UIKit)、または List (SwiftUI) 内に表示されるデータに無限スクロール機能を提供するため、または一般的な結果のページ反復を簡略化するために使用します。

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

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