0

Dynamicsに保存されているがOutlookに表示されている予定に電話をかけたいのですが。

ユーザーがその予定のウィンドウを開いたとします(「お母さんに電話」としましょう)。リボンにボタンを追加しました。クリックすると性別が切り替わります。ユーザーがボタンを押したら、

  1. 代わりに、予定を「お父さんに電話」に更新し、
  2. Outlookに表示されない一部のフィールドを更新します。

最初の部分は、開いているウィンドウのテキストを変更し、ユーザーがフレームを閉じている間に保存することで、通常の方法で新しいお父さんに優しい値を保存できるようにすることで解決できると思います。

ただし、CRM Dynamicsの対応するフィールドの値を含むOutlookクライアントウィンドウの部分がない可能性があるため、2番目の部分は「内部」で実行する必要があります。私が見る限り、CRMサーバーへの接続を直接作成し、そこのフィールドに書き込む必要がありますが、 CRMサーバーで参照するために、その特定の予定のGUIDを取得する方法わかりません。

編集:

明確化が必要です。説明されているアクションは、Outlookの余分な開いたフレーム内で、みなされた予定に対して実行されます。ユーザーがカレンダーの予定をダブルクリックすると、ウィンドウがポップアップ表示され、その予定に関するすべての情報が表示されます。そのウィンドウで、現在開いている/編集されている予定を参照しCRM参照用のGUIDを取得する必要があります。頭の中で「紙の上」がはっきりしていなかったら、お詫びします。:)

4

2 に答える 2

2

一意のCRM情報は、カスタムとしてOutlookアイテムに保存されますUserPropertiesUserProperties追跡された予定を繰り返し処理すると、というプロパティが見つかりますcrmid。あなたが興味のある予定を見つけることができると仮定すると、あなたはGUID以下のように見つけることができます:

var guid = Guid.Parse((string)appt.UserProperties["crmid"].Value);
于 2012-10-16T17:08:36.623 に答える
0

@PeterMajeedによる返信を補足するものとして、次のようにすべてのウィンドウにアクセスするためのコードを作成できます。

foreach (Outlook.Inspector inspector in this.Application.Inspectors)
{
  Outlook.AppointmentItem item 
    = inspector.CurrentItem as Outlook.AppointmentItem;
  Outlook.UserProperty property = item.UserProperties["crmid"];
  String crmId = String.Empty;
  if (property != null)
    crmId = (String) item.UserProperties["crmid"].Value;
}

また、イベントをトリガーした実際のイベントに関心がある場合は(アクティブなイベントであるという前提に基づいて)、以下のコードを使用できます。

Outlook.Inspector inspector 
  = this.Application.ActiveInspector().CurrentItem 
    as Outlook.Inspector;
于 2012-10-17T08:56:51.043 に答える