1

我需要使用记录的 GUID。如果记录是旧的,我可以访问 guid

Xrm.Page.data.entity.getId();

问题是我需要在保存新记录的同时使用 ID。

我尝试保存记录,重新加载页面,然后使用 id

parent.Xrm.Page.data.entity.save();
window.location.reload(true);
var currentCaseId = Xrm.Page.data.entity.getId();

但它不起作用。

编辑:我更改了我的代码,所以现在我可以在 onLoad 事件中获取 ID,但现在我的问题是,如果用户选择“保存”(导致“保存”按钮刷新页面),我只能获取 GUID。如果用户选择“Save&Close”或“Save&New”,则记录不会刷新,因此不会发生 onLoad 事件并且我无法获取 GUID。

4

4 回答 4

1

如果您在 crm 中创建记录,则主键由 crm 创建并返回给您。您可以自己创建一个 guid 并在保存之前分配它。现在你知道正手的关键了。

于 2013-01-12T11:25:59.427 回答
1

当您实际创建实例时,您首先会获得一个实例的guid因此,您需要在服务器使用guid返回给您之前实际执行保存操作。

如果您需要在保存实体之前(或者可能在保存之后但在回发到客户端之前)对实体执行某些操作,您可能希望使用插件拦截操作。

最佳方法将取决于实际需要,这取决于您首先尝试获取guid的原因。你到底打算用“早期向导”做什么?

它是否必须在 JavaScript 中?

于 2013-01-11T21:30:12.977 回答
1

如果记录处于创建模式,我将使用 JavaScript 和 XrmServiceToolkit 创建具有所有可能属性的新记录。这为我在后台执行其他操作提供了所需的 GUID。然后我阻止保存原始表单并在同一窗口中打开新创建的记录。它看起来与常规储蓄完全相同,但它可以满足您的需求。

于 2014-07-15T18:23:55.983 回答
-1

我有一个类似的问题。这可能不是行业最佳实践,但它有效:我在用户有机会保存(并关闭或 saveandnew)之前执行自动保存(Xrm.Page.data.entity.save();)。用户输入所有必填字段后,我执行自动保存。然后生成 Guid 并可在 onload-event 上使用。

于 2013-11-08T12:34:26.317 回答