TestPage.Field.LookUp;
LOOKUP
Die Funktion LOOKUP führt den Lookup auf einem Feld einer Testpage aus.
Parameter
TestPage
bezeichnet die TestPage-Variable und Field
das entsprechende Feld auf der TestPage, für das der Lookup ausgeführt werden soll.
Hinweise zur Verwendung
Die FunktionLOOKUP
führt, wie auch die FunktonenDRILLDOWN
undASSISTEDIT,
dazu, dass eine neue Page geöffnet wird. Bei der Ausführung vom 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 die EigenschaftSubType
aufTest
setzen. In dieser neuen Test-Codeunit legen wir eine neue globale Funktion an, deren EigenschaftFunctionType
wir ebenfalls auf den WertTest
setzen. Dieser Funktion geben wir folgende lokale Variable mit:
Name | Typ | Subtyp |
---|---|---|
SalesOrder | TestPage | Sales Order |
Zusätzlich legen wir folgende globale Variablen an:
Name | Typ | Subtyp |
---|---|---|
Assert | Codeunit | Assert |
Customer | Code |
In die neue Test-Funktion fügen wir nun folgenden Code ein:
SalesOrder.OpenNew(); SalesOrder."Sell-to Customer No.".LookUp(); Assert.AreEqual(SalesOrder."Sell-to Customer No.".Value(),CustomerNo,'Wrong Customer in Lookup');
Da der Lookup auf das Feld Sell-to Customer No.
des Verkaufsauftrags die Page Debitoren
ö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 ModalPageHandler
setzen. Dieser Funktion geben wir folgenden Parameter mit:
Name | Typ | Subtyp |
---|---|---|
CustomerLookup | TestPage | Customer Lookup |
Hierbei ist zu beachten, dass die Page Customer Lookup
erst seit der Version 14 von Business Central, also dem Release 2019 Wave 1, vorhanden ist, in älteren Versionen von Business Central sowie NAV wird die Page Customer List
verwendet.
In diese Handler-Funktion fügen wir nun folgenden Code ein:
CustomerLookup.First(); CustomerNo := CustomerLookup."No.".Value(); CustomerLookup.Ok.Invoke();
Wenn wir diese Codeunit nun veröffentlichen und anschließend über das Test-Tool in Microsoft Dynamics 365 Business Central ausführen, erhalten wir folgendes Ergebnis:
Ohne die Handler-Funktion hätten wir stattdessen folgendes Ergebnis mit einem Hinweis auf ein nicht-behandeltes UI-Objekt bekommen:
Die Fehlermeldung lautet ausgeschrieben: Unbehandelte Benutzeroberfläche (UI): ModalPage '33'