Metode batch
Penggunaan header SOAP di Reporting Services memungkinkan Anda menyertakan beberapa metode layanan Web dalam satu operasi. Metode berjalan dalam cakupan transaksi database tunggal, dalam urutan di mana mereka dipanggil.
Putar kembali adalah salah satu keuntungan menggunakan operasi batch beberapa metode. Jika kesalahan terjadi pada panggilan metode apa pun saat batch berjalan, server laporan berhenti menjalankan batch dan mengembalikan operasi sebelumnya. Tindakan ini berguna ketika panggilan metode tergantung pada keberhasilan penyelesaian panggilan metode lain dalam batch tersebut.
Layanan Web tidak menyediakan semantik penguncian untuk operasi batch beberapa metode. Baris dalam database server laporan tidak dikunci untuk diperbarui hingga pesan dikirim ke server dan perintah dipanggil Execute
.
Tidak ada kontrol konkurensi untuk menjamin bahwa tidak ada yang mengubah database sejak data terakhir dibaca. Jika dua klien memodifikasi item yang sama, pembaruan terakhir berhasil jika parameter masih valid (misalnya, nama item sama).
Contoh berikut memanggil CreateFolder metode tiga kali dan menjalankan panggilan ini sebagai satu batch. Jika salah satu panggilan CreateFolder gagal, seluruh batch dibatalkan.
Imports System
Imports System.Web.Services.Protocols
Imports myNamespace.MyReferenceName
Class Sample
Sub Main(args() As String)
Dim rs As New ReportingService2005()
rs.Credentials = System.Net.CredentialCache.DefaultCredentials
' Set the base Web service URL of the source server
rs.Url = "https://<Server Name>/reportserver/ReportService2005.asmx"
Dim bh As New BatchHeader()
bh.BatchId = service.CreateBatch()
rs.BatchHeaderValue = bh
rs.CreateFolder("New Folder1", "/", Nothing)
rs.CreateFolder("New Folder2", "/", Nothing)
rs.CreateFolder("New Folder3", "/", Nothing)
Console.WriteLine("Creating folders...")
rs.BatchHeaderValue = bh
rs.ExecuteBatch()
Console.WriteLine("Folders created successfully.")
rs.BatchHeaderValue = Nothing
End Sub
End Class
using System;
using System.Web.Services.Protocols;
using myNamespace.MyReferenceName;
class Sample
{
static void Main(string[] args)
{
ReportingService2005 rs = new ReportingService2005();
rs.Credentials = System.Net.CredentialCache.DefaultCredentials;
// Set the base Web service URL of the source server
rs.Url = "https://<Server Name>/reportserver/ReportService2005.asmx"
BatchHeader bh = new BatchHeader();
bh1.BatchID = service.CreateBatch();
rs.BatchHeaderValue = bh;
rs.CreateFolder("New Folder1", "/", null);
rs.CreateFolder("New Folder2", "/", null);
rs.CreateFolder("New Folder3", "/", null);
Console.WriteLine("Creating folders...");
rs.BatchHeaderValue = bh1;
rs.ExecuteBatch();
Console.WriteLine("Folders created successfully.");
rs.BatchHeaderValue = null;
}
}