自定义命令显示快速创建表单

时间:2014-03-12 13:42:26

标签: dynamics-crm-2011 dynamics-crm

我能够很好地将功能,按钮等添加到功能区,这与此问题无关。我使用这个javascript打开一条新记录(由附加到自定义按钮的自定义命令触发)

function ABCD_createContact()
{
 var parameters = {};
 parameters["formid"] = "1FED44D1-rest of guid";
 Xrm.Utility.openEntityForm("contact", null, parameters);
}

我可以创建许多不同的表单并获取每个表单的guid并在" formid"中使用该指针。参数,它将使用该表单打开/创建一个新记录。

所以现在我想打开一个快速创建表单。最终的想法是能够打开我的自定义快速创建表单,但一次一步就意味着我将打开一个OOB表单,以便我使用联系人快速创建。

好好想想,Msoft在幕后表现出一些魔力,并认识到快速创建我尝试将formid参数更改为快速创建的guid。

备注:我使用frames [1] .Xrm.Page.data.entity.getId()获取了快速表单的ID,但随后通过检查数据库中的SystemFormBase表进行了验证。

GetID()返回" D7B30CB9-2DA6-E311-93FE-000C293CE5CF"我无法在任何地方找到它。 SystemFormBase或UserFormBase?

SystemFormBase说" 661157FE-2FC9-4EAA-835F-5BFA2F7B64F7"所以我接受了。

所以再次明确我所做的是在上面的javascript中使用SystemFormBase guid作为formid。

这不起作用。它什么都没做,没有错误。所以我尝试了D7b30 guid,但也没有用。它什么也没做,没有错误。

然后我抓住了Msoft在打开“快速创建表单”时使用的URL,并提出了:

http://localhost/org/_forms/read/page.aspx?_CreateFromId=%7bD7B30CB9-2DA6-E311-93FE-000C293CE5CF%7d&_CreateFromType=1&_searchText=&etc=2&hidecommandbar=true&setLastViewed=false&showglobalquickcreate=true

所以我的问题是如何打开快速创建表单。我是否使用开放网址操作并传递上述所有参数?我是否使用javascript操作并将url参数添加到参数数组中,就像我使用formid一样?

任何帮助都将不胜感激!!

1 个答案:

答案 0 :(得分:1)

frames [1] .Xrm.Page.data.entity.getId()将获取记录GUID而不是表单GUID(不确定框架[1]是什么,但假设您正在构建CRM记录)。

此外,根据您所使用的CRM版本,还有一个Xrm.Utility.openQuickCreate()方法。如果您使用的是2015 Update 1或更高版本,请使用该选项。如果您正在使用CRM 2013,则可以不支持http://ma.xim.is/2014/12/10/open-a-dynamics-crm-2013-quick-create-form-using-javascript/

另一个更简单的选择就是创建一个类似表单的html Web资源,并使用REST或SOAP创建记录 - 这在每个现代版本的CRM中都得到了完全支持。