BW Queries ausführen Deutsch

From Theobald Software

Jump to: navigation, search

English Version: Executing BW Queries


Dieses Kapitel enthält Informationen und Beispiele rund um das Thema BW-Datenextraktion. Die entsprechenden ERPConnect-Klassen sind im Namensraum ERPConnect.BW zu finden.

Die Beispiele basieren auf einer BW-Query, die auf dem Cube 0D_DECU basiert und ZSIMPLEQUERY heißt. Bitte beachten Sie, dass bei der Query in Ihren Einstellungen das Häkchen ‚Externen Zugriff zulassen‘ gesetzt sein muss.

Die Abbildung zeigt die Query im Designer. Es sind die Dimensionen ‚Material‘ und ‚Auftraggeber‘, sowie die Kennzahlen ‚Fakturierte Menge‘ und ‚Kosten‘ in die Ergebnismenge gezogen. Die Dimension hat eine Variable namens MAT01, die die Einschränkung auf Materialnummer erlaubt.

BW Query Designer
Enlarge
BW Query Designer

Beispiel

Das folgende Beispiel zeigt die Ausführung der Query unter .NET. Zunächst wird ein BWCube-Objekt mit Hilfe der CreateCube-Funktion gebildet. Der Name setzt sich dabei aus dem Cubenamen und dem Querynamen zusammen.

Das Cube-Objekt bietet eine Collection für alle enthaltenen Dimensionen (‚Dimensions‘) und für alle enthaltenen Kennzahlen (‚Measures‘). Die Eigenschaft SelectForFlatMDX definiert, ob die jeweilige Komponente in der Ergebnismenge enthalten sein soll. Sie wird im Beispiel auf true gesetzt. Bitte beachten Sie, dass die Benennung der Kennzahlen durch die Query-Generierung im Designer nicht den originalen, technischen Namen folgt, daher werden die Kennzahlen hier im Beispiel über die Ordinalzahl und nicht über den Namen angesprochen.

Um die Variable mit Werten zu füllen, wird sie über die Variables-Collection angesprochen. Hinter einer Variablen liegen immer Range-Tabellen, die wir bereits aus dem SAP Query Kapitel kennen. Die BW-Query kann über Execute() ausgeführt werden und liefert eine Tabelle vom Typ DataTable zurück. Der Screenshot des Beispiels zeigt die Ergebnismenge im Grid.


C#

private void Go_Click(object sender, System.EventArgs e)
{
	R3Connection con = new R3Connection();
	if (!con.AskUserAndOpen(true))
		return;
	BWCube query = con.CreateBWCube("0D_DECU/ZSIMPLEQUERY");
 
	query.Dimensions["0D_MATERIAL"].SelectForFlatMDX = true;
	query.Dimensions["0D_SOLD_TO"].SelectForFlatMDX = true;
 
	query.Measures[0].SelectForFlatMDX = true;
	query.Measures[1].SelectForFlatMDX = true;
 
	query.Variables["MAT01"].SingleRange.LowValue = this.txtMatNr.Text;
 
	this.dataGrid1.DataSource = query.Execute();
}

[VB]

Private Sub Go_Click(ByVal sender As Object, ByVal e As System.EventArgs)
        Dim con As R3Connection = New R3Connection
        If Not con.AskUserAndOpen(true) Then
            Return
        End If
 
        Dim query As BWCube = con.CreateBWCube("0D_DECU/ZSIMPLEQUERY")
 
        query.Dimensions("0D_MATERIAL").SelectForFlatMDX = true
        query.Dimensions("0D_SOLD_TO").SelectForFlatMDX = true
 
        query.Measures(0).SelectForFlatMDX = true
        query.Measures(1).SelectForFlatMDX = true
 
        query.Variables("MAT01").SingleRange.LowValue = Me.txtMatNr.Text
 
        Me.dataGrid1.DataSource = query.Execute
 
    End Sub

Image:BWQueryImGrid.png

DeutschEnglish
Personal tools
XtractQL Provider
Xtract RS