Freigeben über


openForm (Client-API-Referenz)

Öffnet ein Entitätsformular oder ein Schnellerfassungsformular.

Anmerkung

Um ein Hauptformular als Dialog zu öffnen, verwenden Sie stattdessen die Methode navigateTo . Weitere Informationen: Öffnen des Hauptformulars in einem Dialogfeld mithilfe der Client-API

Syntax

Xrm.Navigation.openForm(entityFormOptions, formParameters).then(successCallback, errorCallback);

Parameter

Name Type Erforderlich Beschreibung
entityFormOptions Object Ja Formularoptionen zum Öffnen des Formulars. Siehe EntityFormOptions-Objekt
formParameters Object Nein Ein Wörterbuchobjekt, das dem Formular zusätzliche Parameter übergibt. Ungültige Parameter verursachen einen Fehler.

Informationen zum Übergeben von Parametern an ein Formular finden Sie unter Festlegen von Spaltenwerten mithilfe von Parametern, die an ein Formular übergeben werden und Ein Formular konfigurieren, um benutzerdefinierte Abfragezeichenfolgenparameter zu akzeptieren.
successCallback Function Nein Eine Funktion, die ausgeführt werden soll, wenn der Datensatz im Schnellerstellungsformular gespeichert wird. Diese Funktion akzeptiert ein Objekt als Parameter. Das Objekt verfügt über ein savedEntityReference Array mit den folgenden Eigenschaften, um die angezeigten oder erstellten Datensätze zu identifizieren:
- entityType: Der logische Name der Tabelle.
- id: Eine Zeichenfolgendarstellung eines GUID-Werts für den Datensatz.
- name: Der primäre Spaltenwert des erstellten oder angezeigten Datensatzes.

ANMERKUNG:
– Die successCallback Funktion wird nicht ausgeführt, wenn Sie ein Formular für einen vorhandenen oder neuen Datensatz öffnen.
- Die Funktion successCallback wird nur ausgeführt, wenn Sie eine Aufzeichnung in einem Formular für Schnellerfassung speichern, das mit der openForm-Methode geöffnet wurde.
errorCallback Function Nein Eine auszuführende Funktion, wenn der Vorgang fehlgeschlagen ist.

EntityFormOptions-Objekt

Das Objekt enthält die folgenden Werte:

Name Type Erforderlich Beschreibung
entityName String Ja Logischer Name der Tabelle, für die das Formular angezeigt werden soll.
entityId String Nein ID des Tabellendatensatzes, für den das Formular angezeigt werden soll.
formId String Nein ID der anzuzeigenden Formularinstanz.
cmdbar Bool Nein Gibt an, ob die Befehlsleiste angezeigt werden soll. Wenn Sie diesen Parameter nicht angeben, wird die Befehlsleiste standardmäßig angezeigt. Erfordert die Übergabe des openInNewWindow-Parameters als wahr.
createFromEntity Nachschlagefeld Nein Legt einen Datensatz fest, der Standardwerte basierend auf zugeordneten Spaltenwerten bereitstellt. Das Suchobjekt hat folgende Zeichenfolgeneigenschaften: entityType, idund name (optional).
openInNewWindow Bool Nein Gibt an, ob formular in einem neuen Fenster oder auf einer neuen Registerkarte angezeigt werden soll. Wenn Sie Werte für Höhe oder Breite angeben und nicht angeben true , wird das Formular auf einer neuen Registerkarte angezeigt. Wenn Sie ein Formular in einem neuen Fenster oder einer neuen Registerkarte öffnen, wird das Rendern des Formulars im Vergleich zum Öffnen des Formulars auf derselben Registerkarte langsam. Erwägen Sie stattdessen das Öffnen eines Formulars im Hauptformulardialogfeld. Diese Eigenschaft wird derzeit für Schnellerstellungsformulare nicht unterstützt, da sie nicht in einem neuen Fenster oder einer neuen Registerkarte geöffnet werden können.
height Number Nein Die Höhe des zu öffnenden Formulars in Pixeln. Erfordert die Übergabe des openInNewWindow-Parameters als wahr.
width Number Nein Die Breite des zu öffnenden Formulars in Pixeln. Erfordert die Übergabe des openInNewWindow-Parameters als wahr.
navbar String Nein Steuert, ob die Navigationsleiste angezeigt wird und ob Anwendungsnavigation über die in der Siteübersicht definierten Bereiche und Unterbereiche verfügbar ist. Gültige Werte sind: on, off oder entity. Erfordert die Übergabe des openInNewWindow-Parameters als wahr.
- on: Die Navigationsleiste wird angezeigt. Dies ist das Standardverhalten, wenn der Navigationsleistenparameter nicht verwendet wird.
- off: Die Navigationsleiste wird nicht angezeigt. Benutzer können andere Benutzeroberflächenelemente oder die Schaltflächen Zurück und Weiter für die Navigation verwenden.
- entity: In einem Formular sind nur die Navigationsoptionen für verknüpfte Tabellen verfügbar. Nach der Navigation zu einer verknüpften Tabelle wird die Schaltfläche Zurück in der Navigationsleiste angezeigt, mit der Sie zum ursprünglichen Datensatz zurückkehren können.
relationship Object Nein Definieren eines Beziehungsobjekts, um die zugehörigen Datensätze im Formular anzuzeigen. Siehe Beziehungsobjekt
selectedStageId String Nein ID der ausgewählten Phase in der Geschäftsprozessinstanz.
useQuickCreateForm Bool Nein Gibt an, ob das Formular „Schnellerfassung“ geöffnet wird. Die Tabelle muss die Schnelles Erstellen zulassen Option aktiviert haben, damit das Schnellerstellungsformular angezeigt wird, und Sie müssen außerdem die Tabelle und das Schnellerstellungsformular zu Ihrer App hinzufügen. Wenn Sie nicht den Wert useQuickCreateFormangeben, wird der Standardwert auf false.

Beziehungsobjekt

Das Objekt verfügt über die folgenden Werte.

Name Type Beschreibung
attributeName String Name der Spalte, die für die Beziehung verwendet wird.
name String Name der Spalte, die für die Beziehung verwendet wird.
navigationPropertyName String Name der Spalte, die für die Beziehung verwendet wird.
relationshipType Number Beziehungstyp. Geben Sie einen der folgenden Werte an:
- 0:OneToMany
- 1:ManyToMany
roleType Number Beziehungsrollentyp. Geben Sie einen der folgenden Werte an:
- 1:Verweisen
- 2:AssociationEntity

Anmerkungen

Sie sollten diese Methode zum Öffnen der Tabelle oder Schnellerfassungsformulare verwenden anstelle der veralteten Methoden Xrm.Utility.openEntityForm und Xrm.Utility.openQuickCreate.

Verwenden Sie setActiveProcess, um einen bestimmten Geschäftsprozess anzuzeigen, und setActiveProcessInstance, um eine bestimmte Geschäftsprozessinstanz im Formular anzuzeigen.

Beispiele

Beispiel 1: Öffnen Sie ein Formular für vorhandenen Datensatz

Der folgende Beispielcode öffnet ein Kontaktformular, um einen vorhandenen Kontakt anzuzeigen:

var entityFormOptions = {};
entityFormOptions["entityName"] = "contact";
entityFormOptions["entityId"] = "00aa00aa-bb11-cc22-dd33-44ee44ee44ee";

// Open the form.
Xrm.Navigation.openForm(entityFormOptions).then(
    function (success) {
        console.log(success);
    },
    function (error) {
        console.log(error);
    });

Beispiel 2: Öffnen Sie ein Formular für einen neuen Datensatz

Der folgende Beispielcode öffnet ein Formular mit einigen voraufgefüllten Werte, um einen neuen Datensatz zu erstellen:

var entityFormOptions = {};
entityFormOptions["entityName"] = "contact";

// Set default values for the Contact form
var formParameters = {};
formParameters["firstname"] = "Sample";
formParameters["lastname"] = "Contact";
formParameters["fullname"] = "Sample Contact";
formParameters["emailaddress1"] = "contact@adventure-works.com";
formParameters["jobtitle"] = "Sr. Marketing Manager";
formParameters["donotemail"] = "1";
formParameters["description"] = "Default values for this record were set programmatically.";

// Set lookup column
formParameters["preferredsystemuserid"] = "3493e403-fc0c-eb11-a813-002248e258e0"; // ID of the user.
formParameters["preferredsystemuseridname"] = "Admin user"; // Name of the user.
// End of set lookup column

// Open the form.
Xrm.Navigation.openForm(entityFormOptions, formParameters).then(
    function (success) {
        console.log(success);
    },
    function (error) {
        console.log(error);
    });

Beispiel 3: Ein Formular für einen neuen Datensatz öffnen (komplexes Lookup)

Der folgende Beispielcode öffnet ein Aktivitätsformular mit einigen vordefinierten Werten (einschließlich eines komplexen Nachschlagevorgangs), um einen neuen Datensatz zu erstellen:

var entityFormOptions = {};
entityFormOptions["entityName"] = "email";

// Set default values for the Contact form
var formParameters = {};
formParameters["subject"] = "Sample";
formParameters["description"] = "Default values for this record were set programmatically.";

// Set lookup column
formParameters["regardingobjectid"] = "3493e403-fc0c-eb11-a813-002248e258e0"; // ID of the user.
formParameters["regardingobjectidname"] = "Admin user"; // Name of the user.
formParameters["regardingobjectidtype"] = "systemuser"; // Table name. 
// End of set lookup column

// Open the form.
Xrm.Navigation.openForm(entityFormOptions, formParameters).then(
    function (success) {
        console.log(success);
    },
    function (error) {
        console.log(error);
    });

Beispiel 4: Öffnen Sie das Schnellerfassungsformular

Der folgende Beispielcode öffnet ein Formular mit einigen voraufgefüllten Werte, um einen neuen Datensatz zu erstellen:

var entityFormOptions = {};
entityFormOptions["entityName"] = "contact";
entityFormOptions["useQuickCreateForm"] = true;

// Set default values for the Contact form
var formParameters = {};
formParameters["firstname"] = "Sample";
formParameters["lastname"] = "Contact";
formParameters["fullname"] = "Sample Contact";
formParameters["emailaddress1"] = "contact@adventure-works.com";
formParameters["jobtitle"] = "Sr. Marketing Manager";
formParameters["donotemail"] = "1";
formParameters["description"] = "Default values for this record were set programmatically.";

// Set lookup column
formParameters["preferredsystemuserid"] = "3493e403-fc0c-eb11-a813-002248e258e0"; // ID of the user.
formParameters["preferredsystemuseridname"] = "Admin user"; // Name of the user.
formParameters["preferredsystemuseridtype"] = "systemuser"; // Table name.
// End of set lookup column

// Open the form.
Xrm.Navigation.openForm(entityFormOptions, formParameters).then(
    function (success) {
        console.log(success);
    },
    function (error) {
        console.log(error);
    });

Xrm.Navigation