TestPage.Field.DRILLDOWN;
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