Ruft Anhänge und Anhangmetadaten ab

  • Freigeben Version: Zurich
  • Aktualisiert 31. Juli 2025
  • 2 Minuten Lesedauer
  • Die NowAttachmentService Mit der API können Sie CRUD-Vorgänge für Anhänge ausführen und Anhangsmetadaten von Ihrem abrufen ServiceNow Instanz.

    Hinweis:
    Die Jetzt Anhang Die API funktioniert für Gastanwender in der Basis ServiceNow System.
    Mit dieser API können Sie:
    • Laden Sie Anhänge auf hoch ServiceNow Instanz und einem bestimmten Datensatz zugeordnet.
    • Laden Sie einen oder mehrere Anhänge herunter.
    • Löschen Sie Anhänge.
    • Validieren Sie einen Anhang, indem Sie den berechneten Hash des Anhangs mit dem erwarteten Hash vergleichen.
    • Laden Sie die Metadaten des Anhangs herunter. Diese Metadaten werden von generiert ServiceNow Instanz, wenn ein Anhang hochgeladen wird.

    Weitere Informationen zum Arbeiten mit Anhängen finden Sie unter Anhang-API .

    Im Folgenden wird gezeigt, wie NowAttachmentService instanziiert wird:
    /**
     * Helper class used to handle different Now service instances. 
     * It has an application scope or is a Singleton.
     */
    @Singleton
    class SdkManager @Inject constructor() {
    
    
        private var nowAttachmentService: NowAttachmentService? = null
    
        /**
         * Create the NowAttachmentService once in the lifetime of the application 
         * inside the Application class or another manager class
         * that will be injected into other classes via dagger/hilt.
         * NowAttachmentService should be created after initializing the NowSDK
         */
        suspend fun getNowAttachmentService(): NowAttachmentService? {
            if (nowAttachmentService != null) return nowAttachmentService
    
            return NowDataSDK.makeAttachmentService(URL("https://instance-name.service-now.com"))
                .getOrThrow()
                .also { this.nowAttachmentService = it }
        }
    }

    Im Folgenden wird gezeigt, wie Sie einen erhalten Rufen Sie An Objekt, das Metadaten für bestimmte Anhänge abruft. Erstellt ein ausführbares Objekt, das die angegebene Anforderung ausführen und zurückgeben kann Response<NowAttachmentMetadata> .

    suspend fun fetchMetadata(sysId: String) {
        val response = runCatching {
            sdkManager.getNowAttachmentService()?.attachmentMetadata(sysId)?.execute()
        }
    
        if (response.isSuccess) {
            val nowAttachmentMetadata = response.getOrNull()?.body
        } else {
            Log.e("NowSDK", "result not successful")
        }
    }

    Im Folgenden wird gezeigt, wie Sie einen erhalten Rufen Sie An Objekt, das Metadaten für mehrere Anhänge abruft. Erstellt ein ausführbares Objekt, das die angegebene Anforderung ausführen und zurückgeben kann Antwort< List<NowAttachmentMetadata>> .

    suspend fun fetchMultipleMetadata() {
        val filterQuery = "content_type=text/plain"
        val limit = 5
    
        val response = runCatching {
            sdkManager.getNowAttachmentService()?.attachmentMetadata(Filter(filterQuery), limit)?.execute()
        }
    
        if (response.isSuccess) {
            val attachmentMetadataList = response.getOrNull()?.body
        } else {
            Log.e("NowSDK", "result not successful")
        }
    }

    Paginierung der Anhangsmetadaten

    Sie können verwenden NowAttachmentService Methoden zum Herunterladen von Anhangsmetadaten für einen oder mehrere Anhänge. Wenn Sie Metadaten aus mehreren Anhängen herunterladen, können Sie verwenden NowAttachmentService – attachmentMetadataPaginator(Filter: Filter? = null, Grenzwert: INT? = null) Methode, die ein Paginator-Objekt zurückgibt, mit dem Sie die potenziell große Datenmenge, die zurückgegeben wird, einfach iterieren können.

    Sie können dann mithilfe von Paginator-Methoden durch die zurückgegebenen Metadaten iterieren und die Antwort in erhalten Beobachten () Rückruf.
     suspend fun createAttachmentMetadataPaginator() {
      val filterQuery: String = "content_type=text/plain"
      val filter = filterQuery.let(::Filter)
      val limit = 10
    
      val paginator = sdkmanager.getNowAttachmentService()?.attachmentMetadataPaginator(filter, limit)
        ?.observe(object : PaginatorCallBack<NowAttachmentMetadata> {
          override fun onSuccess(response: Response<List<NowAttachmentMetadata>>) {
            // Handle response
          }
    
          override fun onFailure(e: NowDataError) {
            // Handle error
          }
    
        })
        ?: throw Exception("Response is null")
    
      // Use paginator operators to navigate. Example
      while (paginator.hasNext() && !paginator.isBusy()) {
        paginator.next()
      }
    }
    Das zurückgegebene Paginator-Objekt bietet die folgenden Methoden, mit denen Sie die zurückgegebenen Datensätze durchblättern können. Sie müssen zuerst anrufen Beobachten () Funktion zum Festlegen des Rückrufs des Paginierers.
    • First()
    • hasNext()
    • HasPrevious
    • Ist Busy
    • Letzte()
    • Next()
    • Beobachten ()
    • Zurück ()
    • reset()
    Hinweis:
    Einige Paginator Methoden können eine Ausnahme auslösen, z. B. wenn keine weiteren Seiten zum Abrufen vorhanden sind.