DRILLDOWN

Der Befehl DRILLDOWN führt die Drilldown-Funktionalität auf einem Feld einer Test-Seite aus.

Parameter

Die Funktion DRILLDOWN wird als Feld-Funktion einer TestPage-Variablen aufgerufen, dementsprechend bezeichnet TestPage die Test-Seite und Field das Feld ebenjener Test-Seite, für welches der Drilldown durchgeführt werden soll.

Hinweise zur Verwendung

Die Funktion DRILLDOWN führt, wie auch die Funktionen LOOKUP und ASSISTEDIT, dazu, dass eine neue Page geöffnet wird. Bei der Ausführung von Test-Code führt dies zu einem Fehler, da die Code-Verarbeitung nicht weitergeführt werden kann. Dementsprechend muss eine entsprechende Handler-Funktion erstellt werden, die die aufgerufene Page bearbeitet und schließt.

Beispiel

Für unser Beispiel legen wir eine neue Test-Codeunit an, indem wir ein neues Objekt vom Typ Codeunit erstellen und bei diesem die Eigenschaft SubType auf Test setzen. In dieser neuen Test-Codeunit legen wir eine neue globale Funktion an, deren Eigenschaft FunctionType wir ebenfalls auf den Wert Test setzen. Dieser Funktion geben wir folgende lokalen Variable mit:

Name Typ Subtyp
ItemCard TestPage Item Card

Zusätzlich legen wir folgende globale Variablen an:

Name Typ Subtyp
Assert Codeunit Assert
Amount Decimal  

In die neue Test-Funktion fügen wir nun folgenden Code ein:

ItemCard.OpenEdit();
Evaluate(Amount, ItemCard.Inventory.Value);
ItemCard.Inventory.Drilldown();

Da der Drilldown auf das Feld Inventory der Artikelkarte die Page Artikelposten öffnet, benötigen wir weiterhin eine Funktion, die diese neu geöffnete Page verarbeitet. Hierzu legen wir wieder eine neue Funktion an, deren Eigenschaft FunctionType wir auf den Wert PageHandler setzen. Dieser Funktion geben wir folgenden Parameter mit:

Name Subtyp Typ
ItemLedgerEntries TestPage Item Ledger Entries

Zusätzlich benötigt diese Handller-Funktion folgende lokale Variable:

Name Typ
SumQuantity Decimal

Anschließend fügen wir folgenden Code in unsere neue Handler-Funktion ein:

ItemLedgerEntries.First();
repeat
    SumQuantity += ItemLedgerEntries.Quantity.AsDecimal();
until ItemLedgerEntries.Next() = false;
Assert.AreEqual(Amount, SumQuantity, 'Summation went wrong.');

Diese neue Handler-Funktion muss nun noch in der Test-Funktion eingetragen werden. Führen wir anschließend unsere neue Test-Codeunit über das Test-Tool im Webclient von Microsoft Dynamics 365 Business Central aus, erhalten wir folgendes Ergebnis:

Ohne die Handler-Funktion würden wir nun stattdessen folgende Fehlermeldung sehen:

Im Wortlaut lautet die Fehlermeldung: Unhandled UI: Page 38