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 FunktionLOOKUPführt, wie auch die FunktonenDRILLDOWNundASSISTEDIT,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 EigenschaftSubTypeaufTestsetzen. In dieser neuen Test-Codeunit legen wir eine neue globale Funktion an, deren EigenschaftFunctionTypewir ebenfalls auf den WertTestsetzen. 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'