Datenpakete mit der BWQuery-Klasse Deutsch

From Theobald Software

Jump to: navigation, search

English Version: Transferring data packets with BWQuery class


Bei größeren BW-Queries kann es aus speichertechnischen Gründen sinnvoll sein, die Ergebnismenge nicht an einem Stück zu empfangen und weiterzuverarbeiten, sondern in einzelnen Paketen (analog der ReadTable-Klasse, siehe auch Datenpakete mit der ReadTable-Klasse).

Der folgende Code-Ausschnitt zeigt die Verwendung der Eigenschaft 'PackageSize' und des Events 'OnIncomingPackage'. Das Beispiel ist gekürzt und basiert auf dem Artikel BW Queries ausführen.

Setzen Sie die PackageSize auf einen sinnvollen Wert (z.B. 1000) und verarbeiten Sie die einzelnen Pakete nacheinander im IncomingPackage-Ereignis. Vor dem Aufruf der Execute()-Funktion muss natürlich der Eventhandler entsprechend definiert sein, damit das Ereignis ausgelöst werden kann.


Achtung! Diese Paketierung ist aus technischen Gründen von SAP-Seite aus auf 1.000.000 Zeilen beschränkt


C#

private void Go_Click(object sender, System.EventArgs e)
{
    // Open R3Connection and create BWQuery object
 
    query.PackageSize = 1000;
    query.IncomingPackage += new BWCube.OnIncomingPackage(query_IncomingPackage);
 
    query.Execute();
}
 
void query_IncomingPackage(BWCube Sender, MDXExecuter mdxexecuter, DataTable PackageResult)
{
    MessageBox.Show("A new data package has arrived");
    this.dataGrid1.DataSource = PackageResult;
}
DeutschEnglish
Personal tools
XtractQL Provider
Xtract RS