我可以在CRM对话框中获得当前记录Guid吗?

时间:2012-10-24 14:48:00

标签: dynamics-crm dynamics-crm-2011 dynamics-crm-online

我从某个记录表单上的功能区按钮调用crm对话框。有没有办法在对话框中获取此记录Guid?

3 个答案:

答案 0 :(得分:2)

感谢所有回复。我找到了办法。 在对话框表单助手中,我们应该查找:{ EntityName },而不是在{ EntityName }下面的下拉列表中选择 - 存储了有关调用对话框的当前记录的所有数据。

答案 1 :(得分:0)

是的,这是一个很好的解决方法:

http://crmmongrel.blogspot.com/2011/06/launch-dialog-from-ribbon-button-in-crm.html

在步骤6中,您会注意到功能区包含以下内容:

<CrmParameter Value="FirstPrimaryItemId" />

答案 2 :(得分:0)

我的需求略有不同,因此提出的两个解决方案并不完全合适。如果这有助于其他人,我会张贴。我想在提示和响应页面上显示guid,然后将guid传递给自定义代码。

当然,CRM会将主键guid转换为记录名称。

在代码中这可以,因为我可以通过该名称查询实体以获取记录,但其中有很多额外的处理。

我们在所有表单上都有一个管理标签,以获取额外的支持信息。在这种情况下,我只是创建了一个字段,将其放在管理选项卡上,然后添加此javascript以形成OnLoad。

function PopulateRecordGuid()
{
   if (Xrm.Page.ui.getFormType() != 1)
   {
      if(Xrm.Page.getAttribute('xxxx_recordguid').getValue() == null )
      {
        var Id = Xrm.Page.data.entity.getId();
        Id = Id.replace('{', '');
        Id = Id.replace('}', '');
        Xrm.Page.getAttribute('xxxx_recordguid').setValue(Id);
      }
   }
}

当然,有许多变体,例如使用插件填充创建消息或触发记录创建的工作流等。