我能够很好地将功能,按钮等添加到功能区,这与此问题无关。我使用这个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一样?
任何帮助都将不胜感激!!
答案 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中都得到了完全支持。