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

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

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

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

    すべての NowAttachmentService メソッドには、結果データを返すための 3 つの実装が用意されています。返される結果を使用して完了ハンドラーを呼び出すもの、async/await をプリフォームするハンドラー、および 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 throwsNowAttachmentService - 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(フィルター: フィルター, 制限: 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()
    • reset()
    注:
    一部の Paginator メソッドは、フェッチするページがなくなった場合などに例外をスローする場合があります。

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