2016-04-22 11 views
1

Wir verwenden Dynamics CRM 2016 mit USD 2.0 und haben Probleme mit Popups innerhalb des Systems, die Ergebnisse zurückgeben.Dynamics CRM Unified Service Desk Popup-Ergebnis

Es gibt mehrere Stellen, an denen wir WebRessourcen in neuen Fenstern öffnen (als schwebende Panels), einige Arbeiten im neuen Fenster ausführen und dann mit dem übergeordneten Fenster interagieren müssen, um einige Felder zu setzen.

Dies funktioniert perfekt in einem Browser mit window.open und window.parent.Xrm ... um den Wert festzulegen. In USD ist die Variable window.parent jedoch null und wir können keine andere Möglichkeit finden, das übergeordnete Fenster zum Festlegen eines Werts zu veranlassen.

Jede Hilfe oder Beispiele würden geschätzt.

Antwort

1

Dies kann eine zweiteilige Herausforderung sein. Die erste Herausforderung besteht darin, sicherzustellen, dass Ihre Webressourcen tatsächlich in Hosted Controls und nicht in externen Browserfenstern in USD geladen werden. Die zweite Herausforderung besteht darin, zwischen den beteiligten Hosted Controls zu kommunizieren, sobald alles innerhalb von USD geschieht.

Wenn in windows.open externe Browserfenster gestartet werden, erlauben Ihre Window Navigation Rules (oder deren Fehlen), dass Ihre Webressourcen-Navigation USD verlässt. Um hier Werte nach Bedarf zu übergeben, ist es notwendig, solche Navigationen unter Verwendung von Fensternavigationsregeln zu beherrschen. Definieren Sie ein gehostetes Steuerelement, das auf FloatingPanel basiert, und experimentieren Sie mit Regeln, bis Ihre Webressourcen wie gewünscht geladen werden.

Wenn die Web-Ressource in einem Hosted Control geladen wird, muss nur USD gesprochen werden. Wenn es Zeit ist Werte zurückzusetzen, wenn window.IsUSD überprüfen, und heben Sie eine benutzerdefinierte Ereignis:

https://msdn.microsoft.com/en-us/library/dn864970.aspx#EventMoniker

Dies ermöglicht es Ihnen Aktion Anrufe zu schreiben, die Ihre Veranstaltung des Schlüssel-Wert-Paare verbrauchen können, die zugänglich sind Verwenden von [[Ersetzungssyntax]] während des Ereignisses. Diese Aktionsaufrufe können RunXrmCommand auf Ihrem "Eltern" -Steuerelement (welches USD einfach als ein anderer Browser behandelt, der nicht von einem Elternteil gehostet wird), so dass Ihre Rückgabewerte letztendlich ihren Weg finden können.

+1

Danke dafür. Haben beschlossen, den Ansatz eines benutzerdefinierten Ereignisses zu starten und die Ursprungsseite zu verfolgen, indem Parameter an die WebRessource beim Trigger übergeben werden. – Jareth