【问题标题】:How to obtain the GUID of an CRM Dynamics 2011 appointment stored in Outlook 2010?如何获取存储在 Outlook 2010 中的 CRM Dynamics 2011 约会的 GUID?
【发布时间】:2012-10-16 16:07:46
【问题描述】:

我想拨打存储在 Dynamics 中显示在 Outlook 中的约会。

假设用户打开一个带有所述约会的窗口(比如说“打电话给妈妈”)。我在功能区中添加了一个按钮,我希望它在单击时引起性别切换。如果用户点击按钮,我想

  1. 将约会改为“打电话给爸爸”,然后
  2. 更新 Outlook 中未显示的一些字段。

我认为可以通过更改打开窗口中的文本并允许用户以通常的方式存储新的、对爸爸友好的值来解决第一部分 - 通过在关闭框架时保存。

但是,第二部分需要“在后台”完成,因为 Outlook 客户端窗口的任何部分可能都不包含 CRM Dynamics 中相应字段的值。据我所知,我需要直接创建与 CRM 服务器的连接并写入那里的字段我不确定如何获取该特定约会的 GUID 以便引用它在 CRM 服务器上。

编辑:

需要澄清一下。所描述的操作将在在 Outlook 中额外的开放框架内执行,以用于相关约会。如果用户双击日历中的约会,则会弹出一个窗口,其中包含有关它的所有信息。在那个窗口中,我需要参考当前打开/编辑的约会并获取它的 GUID以供CRM参考。如果它不像我头脑中那样清楚“在纸上”,我深表歉意。 :)

【问题讨论】:

  • 当用户双击 Outlook 日历中的约会时,该约会是否已在 CRM 中跟踪?
  • @PeterMajeed 什么是“双击”?错字?但是,您提出了一个有效的观点。如果 OP 尝试执行与尚未被 CRM 跟踪(或已被 CRM 未跟踪)的约会相关的 CRM,他将在xxx.UserData["crmid"].Value 上获得空指针异常。最好使用 `if(xxx.UserData["crmid"] != null) DoTheCrmMagic();´。

标签: c# dynamics-crm-2011 outlook-addin


【解决方案1】:

唯一的 CRM 信息作为自定义 UserProperties 存储在 Outlook 项目中。如果您遍历UserProperties 以获取任何跟踪的约会,您会发现一个名为crmid 的属性。假设您可以找到感兴趣的约会,您可以找到GUID,如下所示:

var guid = Guid.Parse((string)appt.UserProperties["crmid"].Value);

【讨论】:

  • 我会在早上的第一件事尝试。然而,一丝忧虑已经笼罩了上来。为什么“假设你能找到”?毕竟,当约会在可编辑窗口中打开时,就会进行呼叫。我无法想象它找不到的任何原因。 可能出了什么问题?请注意一点,彼得。 :)
  • 嘿,抱歉。我没有包含演示如何访问对 Outlook 约会的编程引用的代码(假设您使用的是 VSTO)。如果您在这方面需要帮助,您可能应该编辑问题或创建一个新问题,但一些测试应该可以解决这些问题。
  • 按要求编辑。 60分钟内上班,所以我寄予厚望,呵呵。谢谢!
【解决方案2】:

作为对@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;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-15
    • 2012-10-27
    相关资源
    最近更新 更多