Freigeben über


Batchverarbeitungsmethoden

Die Verwendung von SOAP-Headern in Reporting Services ermöglicht es Ihnen, mehrere Webdienstmethoden in einen einzelnen Vorgang einzuschließen. Methoden werden innerhalb des Bereichs einer einzelnen Datenbanktransaktion in der Reihenfolge ausgeführt, in der sie aufgerufen werden.

Rollback ist ein Vorteil der Verwendung von Batchvorgängen mit mehreren Methoden. Wenn bei einem der Methodenaufrufe während der Ausführung eines Batches ein Fehler auftritt, beendet der Berichtsserver die Ausführung des Batches und setzt alle vorherigen Vorgänge zurück. Dies ist nützlich, wenn ein Methodenaufruf vom erfolgreichen Abschluss anderer Methodenaufrufe in diesem Batch abhängt.

Der Webdienst stellt keine Sperrsemantik für Batchvorgänge mit mehreren Methoden bereit. Zeilen in der Berichtsserverdatenbank werden erst gesperrt, wenn die Nachricht an den Server gesendet wird und der Befehl "Ausführen" aufgerufen wird.

Es gibt auch keine Parallelitätssteuerelemente, um sicherzustellen, dass sich die Datenbank seit dem letzten Lesen der Daten nicht geändert hat. Wenn zwei Clients dasselbe Element ändern, ist die letzte Aktualisierung erfolgreich, wenn die Parameter noch gültig sind (z. B. wurde das Element nicht umbenannt).

Im folgenden Beispiel wird die CreateFolder Methode dreimal aufgerufen und diese Aufrufe als einzelner Batch ausgeführt. Wenn eines der Aufrufe CreateFolder fehlschlägt, wird der gesamte Batch abgebrochen.

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 = "http://<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 = "http://<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;  
    }  
}  

Siehe auch

CancelBatch
CreateBatch
Technische Referenz (SSRS)
Verwenden von SOAP-Headern für Reporting Services