AX 2012: Datensätze mit einer bestimmten Dimension ausgeben
08.05.2012Microsoft Dynamics AX (Axapta)
|
Dieser Beitrag bezieht sich auf die Version:
Dynamics AX 2012
Dynamics AX 2012
Dies ist ein Beitrag aus der Serie »Dynamics AX 2012 - Finanzdimensionen«
In Dynamics AX 2012 hat sich die Handhabung von Finanzdimensionen stark verändert. Und zwar sowohl auf der Oberfläche als auch das dahinterliegende Datenmodell. Wo früher noch ein Feld - meist mit dem Namen Dimension - vom Typ Array in einer Tabelle zu finden war, so findet man nun stattdessen ein von RecId abgeleitetes Feld namens DefaultDimension (o.ä.).
In dieser Serie möchte ich speziell auf diese Änderungen eingehen und das eine oder andere Stück Code präsentieren.
Alle Beiträge dieser Serie anzeigen
|
|
|
|
|
|
Der folgende Job listet alle Debitoren auf, bei welchen in der Dimension CustomerGroup der Wert 80 eingetragen ist.
Der interessante Teil des Jobs ist die Methode addDimensionAttributeRange der Klasse SysQuery, da diese sich um das Verknüpfen der benötigten Datenquellen kümmert.
{
Query query;
QueryBuildDataSource queryBuildDataSource;
QueryBuildRange queryBuildRange;
QueryRun queryRun;
CustTable custTable;
query = new Query();
queryBuildDataSource = query.addDataSource(tableNum(CustTable));
queryBuildRange = SysQuery::addDimensionAttributeRange( query,
queryBuildDataSource.name(),
"DefaultDimension",
DimensionComponent::DimensionAttribute,
queryValue("80"),
"CustomerGroup");
queryRun = new QueryRun(query);
while(queryRun.next())
{
custTable = queryRun.get(tableNum(CustTable));
info(custTable.name());
}
}
Die Klasse SysQuery stellt übrigens zahlreiche weitere ähnliche Funktionen zur Verfügung, um mit Dimensionswerten zu arbeiten.