2016-08-05 41 views
0

Ich habe einige Code für eine benutzerdefinierte Entität mit dynamisch angezeigten Fragen und die Fähigkeit, sie zu beantworten. Ich arbeite daran, zuvor beantwortete Fragen zusammen mit der Möglichkeit, Antworten zu aktualisieren, anzuzeigen. Um dies zu tun, habe ich bestimmte Funktionen onLoad meiner benutzerdefinierten Entity Form Feuer, und ein weiteres Feuer onSave.Dynamics CRM - Umgang mit OnLoad vs OnSave Ereignisse in Form Scripting

Mein Problem ist, dass mein onLoad-Code jedes Mal ausgeführt wird, wenn ein Speichervorgang stattfindet, wodurch die Ausgabe des onSave-Codes effektiv gelöscht wird. Ich möchte nur, dass mein onLoad-Code beim ersten Laden des Formulars ausgeführt wird. Andernfalls sollte der Code, den ich onSave auslösen möchte, alles andere behandeln.

Eine Möglichkeit, dies zu lösen, war die Verwendung von Xrm.Page.ui.getFormType();. Dies gibt den Wert 1 oder 2 zurück, wobei 1 dem erstellten Datensatz und 2 dem zu aktualisierenden Datensatz entspricht. Dies funktionierte für ein Szenario - ich wollte nicht, dass mein onLoad-Code ausgeführt wurde, wenn ein neuer Datensatz für die benutzerdefinierte Entität erstellt wurde, und getFormType() löste dies. ABER, als ich den Datensatz speicherte, änderte sich der Rückgabewert und mein onLoad-Code wurde auf OnSave ausgeführt, was die Dinge durcheinander brachte.

Irgendwelche Ideen, wie ich das lösen würde? Ich kann voraussehen, dass etwas wie getFormType() nützlich ist, aber ich bin ein bisschen verloren, was ich tun soll. Vielen Dank!

Antwort

1

Fügen Sie dem Attribut modifiedon einen onChange-Ereignishandler hinzu. Dieser Wert würde sich immer ändern, nachdem ein Datensatz gespeichert wurde. Sie können einen globalen Parameter verwenden und seinen Wert festlegen, um onLoad erneut vom Feuern abzuhalten.

+0

Vielen Dank. Das hat super funktioniert. –