Dynamics AX Blog - Dynamics AX 2012 - What's new
Dynamics AX 2012 steht vor der Tür. Zeit also, sich einige der neuen Features mal etwas näher anzusehen.
RSS-Feed dieser Blogserie
AX 2012: AddQueryFilter
02.06.2011Microsoft Dynamics AX (Axapta)
In Dynamics AX 2012 verfügt das Query-Objekt nun über eine neue Methode addQueryFilter, mit dessen Hilfe man die Datenbank anweisen kann, Filterkriterien zur WHERE-Clause statt wie in bisherigen Versionen zur ON-Clause einer OUTER-JOIN-Verknüpfung hinzuzufügen. Dies wiederum bewirkt, daß keine "leeren" Datensätze verarbeitet werden. |
AX 2012: ValidTimeState
27.05.2011Microsoft Dynamics AX (Axapta)
Wer schon einmal eine Tabelle aufbauen musste, wo die einzelnen Datensätze über Datumsfelder nur für einen bestimmten Zeitraum gültig sind - ähnlich den Handelsvereinbarungen -, weiß wieviel Entwicklungsaufwand daintersteckt, wenn sichergestellt werden muss, daß sich die Gültigkeitsbereiche der einzelnen Datensätze nicht überschneiden. Dynamics AX 2012 stellt hierfür eine neue Tabelleneigenschaft validTimeStateFieldType zur Verfügung, mit deren Hilfe sich Dynamics AX selbst um vieles kümmert. Beim Anlegen einer solchen Tabelle muss nur auf die folgenden Punkte geachtet werden:
Ab diesem Zeitpunkt kümmert sich Dynamics AX vollständig um das Aktualisieren von nicht mehr gültigen Datensätzen und die entscheidenden Prüfungen beim Anlegen von neuen Datensätzen. Aber auch das Selektieren des jeweils gültigen Datensatzes für ein bestimmtes Datum wird wesentlich erleichert. Dafür stellt Dynamics AX das Keyword validTimeState zur Verfügung. static void AX2012_ValidTimeStateUtcDateTime(Args _args)
{ AX2012_ValidTimeStateUtcDateTime AX2012_ValidTimeStateUtcDateTime; utcDateTime myUtcDateTime = 1988-07-20T13:34:45; ; select validTimeState(myUtcDateTime) * from AX2012_ValidTimeStateUtcDateTime; info(strFmt("%1", AX2012_ValidTimeStateUtcDateTime.salesPrice)); }
|
|
|
|
|
|
|
Ein neues Feature von Dynamics AX 2012 ist, daß man nun bei einem Query auch eine HAVING-Clause hinzufügen kann.
Diese Bedingung dient dazu, berechnete Werte einer GROUP BY-Clause in der WHERE-Clause berücksichtigen zu können. Dieses Feature habe ich in der Vergangenheit vor allem dazu gerne verwendet, wenn es darum ging über eine SQL-Abfrage doppelte (bzw. vielfache) Datensätze in einer Tabelle zu finden. In den bisherigen Versionen von Dynamics AX war dieses Unterfangen über X++ nur etwas umständlich abzubilden.