Freigeben über


openForm (Client-API-Referenz)

Öffnet ein Entitätsformular oder ein Schnellerfassungsformular.

Hinweis

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 des Dataflows 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 führen zu einem 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 wird, wenn der Datensatz im Schnellerstellungsformular gespeichert wird. Dieser Funktion wird ein Objekt als Parameter übergeben. Das Ziel ist ein savedEntityReference-Array mit den folgenden Eigenschaften, um den erstellten oder angezeigten Datensatz 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.

HINWEIS: DIESE ANWENDUNG KANN IN EINER UMGEBUNG KONFIGURIERT WERDEN:
- Die successCallback-Funktion wird nicht ausgeführt, wenn Sie ein Formular für einen vorhandenen oder einen 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 des Dataflows 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. Wird dieser Wert nicht angegeben, wird standardmäßig die Befehlsleiste angezeigt. Erfordert die Übergabe des openInNewWindow-Parameters als wahr.
createFromEntity Nachschlagefeld Nein Bezeichnet einen Datensatz, der Standardwerte auf der Basis von zugeordneten Spaltenwerten bereitstellt. Das Suchobjekt hat folgende Zeichenfolgeneigenschaften: entityType, idund name (optional).
openInNewWindow Bool Nein Gibt an, ob das Formular in einem neuen Fenster oder in einer neuen Registerkarte angezeigt werden soll. Wenn Sie true angeben und keine Werte für Höhe oder Breite angeben, wird das Formular in einer neuen Registerkarte angezeigt. Das Öffnen eines Formulars in einem neuen Fenster oder einer neuen Registerkarte macht das Rendern des Formulars im Vergleich zum Öffnen des Formulars auf derselben Registerkarte langsam; ziehen Sie stattdessen das Öffnen eines Formulars im Hauptdialogfeld für Formulare in Betracht. Diese Eigenschaft wird derzeit für Schnellerfassungsformulare 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 Parameter navbar 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 den Wert von useQuickCreateForm nicht angeben, wird der Standardwert auf false festgelegt.

Beziehungsobjekt

Das Objekt verfügt über die folgenden Werte.

Name des Dataflows 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:Referencing
- 2:AssociationEntity

Anmerkungen

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

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"] = "8DA6E5B9-88DF-E311-B8E5-6C3BE5A8B200";

// 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 voraufgefüllten Werten (einschließlich eines komplexen Lookup), 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

Hinweis

Können Sie uns Ihre Präferenzen für die Dokumentationssprache mitteilen? Nehmen Sie an einer kurzen Umfrage teil. (Beachten Sie, dass diese Umfrage auf Englisch ist.)

Die Umfrage dauert etwa sieben Minuten. Es werden keine personenbezogenen Daten erhoben. (Datenschutzbestimmungen).