Dynamics crm 2011 自定义活动的默认父实体

Dynamics crm 2011 自定义活动的默认父实体,dynamics-crm-2011,Dynamics Crm 2011,这应该是一件简单的事情,但正如我在CRM 2011中很快发现的那样,简单的事情几乎从来都不是 无论如何,我有一个自定义的活动类型,一个“旅行”。一次旅行代表服务技术人员对客户现场的一次访问。TRIP始终与案例(事件)相关,而不会与任何其他实体类型相关,因此实体作为自定义活动存在,不会“显示在活动菜单中”。这允许我将Trips的子网格放到primarycase视图中,使它成为创建这些东西的唯一地方 问题是,当我尝试从案例表单创建新的旅行时(通过单击子网格并从功能区中选择“添加新旅行”),在“关于”

这应该是一件简单的事情,但正如我在CRM 2011中很快发现的那样,简单的事情几乎从来都不是

无论如何,我有一个自定义的活动类型,一个“旅行”。一次旅行代表服务技术人员对客户现场的一次访问。TRIP始终与案例(事件)相关,而不会与任何其他实体类型相关,因此实体作为自定义活动存在,不会“显示在活动菜单中”。这允许我将Trips的子网格放到primarycase视图中,使它成为创建这些东西的唯一地方

问题是,当我尝试从案例表单创建新的旅行时(通过单击子网格并从功能区中选择“添加新旅行”),在“关于”字段中没有填充我单击“添加”时打开的案例。任何“内置”活动类型都将默认其对应的字段,没有问题,因此在我看来,我在这里也可以这样做。一旦这个默认值起作用,这个字段应该是只读的,但是为了在创建新Trip时设置引用,我已经将它设置为可编辑的,当然,当你弹出查找时,你可以将这个Trip分配给任何东西(这就是为什么我首先希望这个字段是只读的)

我需要表单在Trip表单加载时默认父案例。它在第一次创建时必须在那里,因为如果它在第一次保存时不在那里,那么设置其他默认值的一些插件代码(即与同一案例中可能存在或可能不存在的其他Trip相关的数据)将无法正常工作


我读过关于关系字段映射的内容,在这里,您可以根据父实体的字段来默认各种字段的值,但是事件和我的旅行之间的关系没有从任何一方列出为可映射,我无法确定如何使其可映射。我也知道可以使用JavaScript设置默认值,但如果有一种不太“定制”的方式来设置这种特定行为,我很想知道如何设置。

根据Mike的评论,微软似乎确实不希望这样做。但是,仍然有可能做到这一点。基本步骤是:

  • 下载Ribbon Workbench解决方案并将其导入CRM
  • 创建一个新的解决方案,其中包含要自定义的一个或多个实体
  • 创建一个JavaScript文件,其中包含打开所需表单的函数,并将所需信息作为参数传递。有两种方法可以指定参数;您可以在表单上定义自定义参数,也可以将Microsoft未记录的参数用于相关字段:

    function OpenNewTripFromCase()
    {
        var entityId = Xrm.Page.data.entity.getId();
        var entityTypeCode= Xrm.Page.context.getQueryStringParameters().etc;
        var entityDisplayName = Xrm.Page.getAttribute("title").getValue();
    
        var params = {};
        params["pId"] = entityId;
        params["pType"] = entityTypeCode;
        params["pName"] = entityDisplayName;
    
        Xrm.Utility.openEntityForm("cst_trip", null, params);
    }
    
  • 将此JavaScript文件作为Web资源导入,并将其添加到解决方案中,以便Ribbon Workbench可以使用它
  • 打开Ribbon Workbench并打开使用实体和资源创建的解决方案。单击“解决方案元素”选项卡,找到“命令”项。右键单击并选择“添加新”。现在展开列表,查找并单击新命令。在“属性”窗格中,将命令的名称更改为更具描述性(建议您仅更改第三个“命令#”术语),然后单击“操作”字段右侧的放大镜按钮

  • 在弹出的窗口中,单击“添加”,然后选择“JavaScript函数操作”。新项目将添加到操作列表中。单击它,然后在右侧的属性窗格中,找到包含函数的库,然后键入函数名。我在这里没有任何形式的智能感知,所以输入函数名时要小心。如果需要添加参数(不需要使用上面的代码),请单击“确定”

  • 现在,在Ribbon Workbench的“实体”列表中单击“自定义活动”实体,然后在功能区布局右上角的下拉列表中选择子网格功能区。在此功能区中创建一个按钮,为其提供所需的图标和文本,然后在“属性”窗格中,将该命令设置为刚创建的命令

发布定制的解决方案,如果一切都正确,您应该有一个新按钮,当您选择子网格时,该按钮将执行与“添加新”按钮相同的操作,但将另外填充“相关”字段。

您正在使用此按钮。Javascript允许您更改此控件的默认行为。Microsoft不希望您像他们那样使用“关于”字段。所以,你需要做一些定制的事情来绕过这些限制。@Mike_Matthews_II SoL是什么?浸出液的Sopn?:)“S#$out Lock”,其中S是表示粪便的四个字母的单词。