Metodi di invio in batchBatching Methods

L'utilizzo di intestazioni SOAP in Reporting ServicesReporting Services consente di includere più metodi del servizio Web in una singola operazione.The use of SOAP headers in Reporting ServicesReporting Services enables you to include multiple Web service methods in a single operation. I metodi vengono eseguiti nell'ambito di un'unica transazione di database, nell'ordine con cui vengono chiamati.Methods run within the scope of a single database transaction, in the order in which they are called.

La possibilità di eseguire il rollback rappresenta un vantaggio dell'utilizzo di operazioni batch con più metodi.Rollback is one advantage of using multiple-method batch operations. Se si verifica un errore in alcune delle chiamate ai metodi mentre un batch è in esecuzione, il server di report arresta l'esecuzione del batch ed esegue il rollback di qualsiasi operazione precedente.If an error occurs on any of the method calls while a batch is running, the report server stops running the batch and rolls back any previous operations. Questo è utile quando una chiamata al metodo dipende dal corretto completamento delle altre chiamate ai metodi nel batch.This is useful when a method call depends on the successful completion of other method calls in that batch.

Il servizio Web non fornisce una semantica di blocco per le operazioni batch con più metodi.The Web service does not provide locking semantics for multiple-method batch operations. Le righe nel database del server di report non vengono bloccate per l'aggiornamento fino a quando il messaggio non viene inviato al server e non viene chiamato il comando Execute.Rows in the report server database are not locked for updating until the message is sent to the server and the Execute command is called.

Non vengono inoltre eseguiti controlli della concorrenza per garantire che il database non sia stato modificato dopo l'ultima lettura dei dati.There are also no concurrency controls to guarantee that the database has not changed since the data was last read. Se due client modificano lo stesso elemento, l'ultimo aggiornamento ha esito positivo se i parametri sono ancora validi (ad esempio se l'elemento non è stato rinominato).If two clients modify the same item, the last update succeeds if the parameters are still valid (for example, the item has not been renamed).

Nell'esempio seguente il metodo CreateFolder viene chiamato tre volte e queste chiamate vengono eseguite come singolo batch.The following example calls the CreateFolder method three times and runs these calls as a single batch. Se una delle chiamate a CreateFolder ha esito negativo, l'intero batch viene annullato.If any of the calls to CreateFolder fail, the entire batch is canceled.

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

Vedere ancheSee Also

CancelBatchCancelBatch
CreateBatchCreateBatch
Riferimento tecnico ( SSRS ) Technical Reference (SSRS)
Con Reporting Services le intestazioni SOAPUsing Reporting Services SOAP Headers