Ruft Anhänge und Anhangmetadaten ab
Die NowAttachmentService Mit der API können Sie CRUD-Vorgänge für Anhänge ausführen und Anhangsmetadaten von Ihrem abrufen ServiceNow Instanz.
- 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 .
/**
* 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.
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()
}
}- First()
- hasNext()
- HasPrevious
- Ist Busy
- Letzte()
- Next()
- Beobachten ()
- Zurück ()
- reset()