jim*_*bob 2 dynamics-crm dynamics-crm-2011
我正在从功能区按钮执行一些javascript,我想要做的是保存我正在创建的记录,然后立即将其GUID用于某些代码.每次我尝试它时,即使我在保存记录后请求它,GUID也会返回null.如果我在保存之后再次尝试按钮,那么它可以工作,但不是因为我正在保存它.
有没有办法做到这一点?
function RibbonButton_AddProduct()
{
//Save the Record
Xrm.Page.data.entity.save();
LoadProductCreate();
}
function LoadProductCreate()
{
var serverUrl;
var errorMessage = "Context to retrieve the Server URL is not available.";
if (typeof GetGlobalContext != "undefined"){
serverUrl = GetGlobalContext().getServerUrl();
} else {
if (typeof Xrm != "undefined"){
serverUrl = Xrm.Page.context.getServerUrl();
} else {
alert(errorMessage);
return;
}
}
if (serverUrl.match(/\/$/)){
serverUrl = serverUrl.substring(0, serverUrl.length - 1);
}
var recordId = Xrm.Page.data.entity.getId();
alert(recordId);
var url = serverUrl + "/main.aspx?etc=10030&extraqs=%3f_CreateFromId%3d%"+recordId
+"%257d%26_CreateFromType%3d10029%26etc%3d10030%26"
+"pagemode%3diframe%26preloadcache%3d1345465354543&pagetype=entityrecord";
window.open(url);
}
Run Code Online (Sandbox Code Playgroud)
这是解决此问题的不同方法.
你要做的是"对抗系统" - 你实际上是在制作两个保存按钮.在Crm的其余部分,当功能区按钮需要Id时,必须首先保存记录.例如,您无法在未保存的记录上使用对话框或工作流程按钮,也无法将"新/现有"添加到未保存的记录中.
因此,我的解决方案是禁用未保存表单上的按钮,强制用户手动保存记录,然后允许他们使用您的按钮 - 这是Crm的使用方式,并且Crm的其余部分将使用工作.
你不应该反对系统,你应该使用它,你有一个产品来定制和扩展 - 而不是改变.
如果这不符合你的要求,我会建议使用格雷格的建议(1)有标志,虽然听起来有点乱 - 但这是一个固有的要求.
| 归档时间: |
|
| 查看次数: |
4611 次 |
| 最近记录: |