ms crm 2015 - 从jscript onsave设置实体的id

时间:2015-10-06 12:47:30

标签: dynamics-crm-2015

我需要将Ms Dynamics Crm 2015 - On Premise中的实体同步到我的第三方应用程序,为此我已经在Entites的OnSave事件上设置了JavaScript函数(例如帐户)我可以访问所有属性并发送它们到我的webservice,但实体的Id(GuId)! 如何在此活动中访问Id(或手动设置)?!

Xrm.Page.getAttribute("accountid")Xrm.Page.getAttribute("id")都返回null,因此我无法使用它们设置值。

同样Xrm.Page.data.entity.getId()返回""这可能是合乎逻辑的,因为还没有在数据库中插入Object,这就是为entety插入运行时生成的guid似乎可行的原因!

P.S。 我知道我可以用插件做同样的事情,我已经完成了,但问题在于,当我为Update消息注册我的插件时,它会被调用很多次,(大多数情况下它被设置为invoice),这就是让我使用JScript的原因,因为OnSave事件似乎比插件的Update消息更合乎逻辑

1 个答案:

答案 0 :(得分:1)

正如您已经发现的那样,尚未保存的记录没有ID。这是设计的(也是显而易见的)。

此外,ID是数据库中的PK,它们由系统处理,无法触摸或手工制作。

保持类似行为的最佳选择是住在沙箱外的Post-Operation Create插件(Isolation mode: None)。

另一个好的选择是提取数据而不是推送数据:第三方应用程序可以通过任何公开的API(REST,SOAP,SDK ......等等)定期获取新记录。