2016-04-22 12 views
1

Dynamics CRM 2016をUSD 2.0で使用しており、結果を返すシステム内のポップアップに問題があります。Dynamics CRM Unified Service Deskポップアップ結果

新しいウィンドウでウェブリソースを開いたり(フローティングパネルとして)、新しいウィンドウでいくつかの作業をしてから、親ウィンドウとやり取りしていくつかのフィールドを設定する必要があります。

これは、値を設定するwindow.openとwindow.parent.Xrm ...を使用するブラウザでは完全に機能します。しかし、USDでは、window.parent変数はnullであり、親ウィンドウに値を設定する他の方法は見つかりません。

ご了承ください。

答えて

1

これは2つの部分からなる課題です。最初の課題は、Webリソースが実際にUSD内、外部ブラウザウィンドウではなくホストコントロール内に読み込まれるようにすることです。第2の課題は、すべてのことが米ドル内で起こったら、ホストされたコントロール間のやり取りです。

USDでは、window.openが外部ブラウザウィンドウを起動している場合、ウィンドウナビゲーションルール(またはその不足)によりWebリソースナビゲーションがUSDから出ることができます。ここで必要に応じて値を渡すには、Window Navigation Rulesを使用してそのようなナビゲーションを支配する必要があります。 FloatingPanelに存在するホステッドコントロールを定義し、Webリソースが必要に応じてロードされるまでルールを試してください。

WebリソースがHosted Controlにロードされている場合は、USDを発声するだけです。それは、値を返すwindow.IsUSDかどうかをチェックし、カスタムイベントを発生させる時が来たとき:

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

これはアクセス可能である、あなたはあなたのイベントのキーと値のペアを消費することができるアクションの呼び出しを記述することができますイベント中に[[置換構文]]を使用します。これらのアクションコールは、あなたの "親"コントロール(これは単に他の親でないホストのブラウザと同じ扱いです)でRunXrmCommandを実行できるので、戻り値は最終的にその方法を見つけることができます。

+1

ありがとうございます。カスタムイベントを発生させ、トリガー時にWebリソースにパラメータを渡すことによって、起点ページを追跡するというアプローチをとることに決めました。 – Jareth