Bagikan melalui


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;  
    }  
}  

CancelBatch
CreateBatch
Referensi teknis (SSRS)
Menggunakan header SOAP Reporting Services