【问题标题】:How to create a new record with a particular GUID如何创建具有特定 GUID 的新记录
【发布时间】:2009-05-21 16:16:16
【问题描述】:

我正在尝试使用 Dynamics CRM 创建实体的实例。我想手动设置 GUID,但如果我有作为 DynamicEntity 主键的属性,我会收到以下错误。

服务无法处理请求

我正在构建一个 DynamicEntity,并且设置 [entityname]id 属性会导致请求失败。它在两个 CRM 实例之间移动数据,所以如果有人知道在 CRM 之间复制记录的更好方法,那也可以。否则,我希望 GUID 跨实例匹配...因为这就是 GUID 的意义所在。

【问题讨论】:

    标签: guid dynamics-crm-4 crm


    【解决方案1】:

    很高兴,可以跨两个 CRM 实例执行此操作!一位同事知道解决方案,所以功劳确实属于他。

    我的错误是创建了一个 UniqueIdentifierProperty 类型的属性。实体的主键属性需要用 KeyProperty 填写。这两个属性几乎相同——属性类型是,除了一个持有一个 Key,另一个持有 UniqueIdentifier。 Key/UniqueIdentifier 都包含 GUID。 (又是微软心目中的一天!)

    确切地说,我正在做的是创建一个 DynamicEntity,填写实体名称,并填写大部分属性。 PK 属性(可以从元数据中确定)可以用 KeyProperty 填充。我用一个 UniqueIdentifierProperty 填充它,CRM 拒绝它并用一个不伦不类且无用的错误消息进行响应。

    【讨论】:

    • sigh 情节变厚了。虽然上述方法有效,但 CRM 仍然存在障碍。如果您在 CRM 中删除一条记录,它并没有真正消失,它只是被“标记”为删除——请参阅 DeletionStateCode。这些将每隔(在此处插入任意数字)小时删除一次。然而,在此期间,GUID 仍在数据库中,因此您无法插入另一条记录(重复 PK)。您可以通过删除整个实体并重新创建它来解决问题。为什么以上帝的名义,微软认为这是一个绝妙的主意,这超出了我的理解。它将被删除。只需删除记录...
    【解决方案2】:

    如果我过度简化了解决方案,我深表歉意,但为什么不在两个实例中添加一个自定义字段,作为其他实例 guid 的镜像?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-01-02
      • 1970-01-01
      • 1970-01-01
      • 2011-02-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多