【问题标题】:CRM solution import failed "an item with the same key has already been added"CRM 解决方案导入失败“已添加具有相同密钥的项目”
【发布时间】:2016-01-31 02:25:18
【问题描述】:

我在我们的一个 CRM 组织中有一个奇怪的行为。

当我将解决方案(仅包含帐户实体)导出为非托管解决方案时,它可以工作。

但是当我重新导入这个相同的解决方案而不进行任何更改时,我得到了这个错误

“已添加具有相同键的项目”。

我发现我必须从解决方案(和一个关系)中删除属性“ownerid”,然后它才能工作......

这是属性

    <attribute PhysicalName="OwnerId">
          <Type>owner</Type>
          <Name>ownerid</Name>
          <LogicalName>ownerid</LogicalName>
          <RequiredLevel>systemrequired</RequiredLevel>
          <DisplayMask>ValidForAdvancedFind|ValidForForm|ValidForGrid|RequiredForForm</DisplayMask>
          <ImeMode>auto</ImeMode>
          <ValidForReadApi>1</ValidForReadApi>
          <ValidForCreateApi>1</ValidForCreateApi>
          <IsCustomField>0</IsCustomField>
          <IsAuditEnabled>1</IsAuditEnabled>
          <IsSecured>0</IsSecured>
          <IntroducedVersion>5.0.0.0</IntroducedVersion>
          <SourceType>0</SourceType>
          <LookupStyle>single</LookupStyle>
          <LookupTypes>
            <LookupType id="00000000-0000-0000-0000-000000000000">8</LookupType>
            <LookupType id="00000000-0000-0000-0000-000000000000">9</LookupType>
          </LookupTypes>
          <displaynames>
            <displayname description="Vertriebsverantwortlicher" languagecode="1031" />
            <displayname description="Owner" languagecode="1033" />
            <displayname description="Właściciel" languagecode="1045" />
          </displaynames>
          <Descriptions>
            <Description description="Geben Sie den Benutzer oder das Team ein, der bzw. das mit der Verwaltung des Datensatzes betraut ist. Dieses Feld wird aktualisiert, wenn der Datensatz einem anderen Benutzer zugewiesen wird." languagecode="1031" />
            <Description description="Enter the user or team who is assigned to manage the record. This field is updated every time the record is assigned to a different user." languagecode="1033" />
            <Description description="Wprowadź nazwę użytkownika lub zespołu, który zarządza rekordem. To pole jest aktualizowane za każdym razem, gdy rekord zostanie przypisany do innego użytkownika." languagecode="1045" />
          </Descriptions>
        </attribute>

我还检查了服务器日志,发现:

<importexportxml start="635818108905329459" stop="635818109069971342" progress="22.2222222222222" processed="true">
<solutionManifests>
    <solutionManifest languagecode="1031" id="Firma_Transfer" LocalizedName="Firma_Transfer" processed="true">
        <UniqueName>Firma_Transfer</UniqueName>
        <LocalizedNames>
            <LocalizedName description="Firma_Transfer" languagecode="1031" />
        </LocalizedNames>
        <Descriptions />
        <Version>1.0.0</Version>
        <Managed>0</Managed>
        <Publisher>
            <UniqueName>myorg</UniqueName>
            <LocalizedNames>
                <LocalizedName description="Myorg" languagecode="1031" />
            </LocalizedNames>
            <Descriptions />
            <EMailAddress />
            <SupportingWebsiteUrl />
            <Addresses>
                <Address>
                    <City />
                    <Country />
                    <Line1 />
                    <Line2 />
                    <PostalCode />
                    <StateOrProvince />
                    <Telephone1 />
                </Address>
            </Addresses>
        </Publisher>
        <results />
        <result result="success" errorcode="0" errortext="" datetime="13:08:12.07" datetimeticks="635818072920798192" />
    </solutionManifest>
</solutionManifests>
<upgradeSolutionPackageInformation>
    <upgradeRequired>0</upgradeRequired>
    <upgradeValid>1</upgradeValid>
    <fileVersion>7.0.1.129</fileVersion>
    <currentVersion>7.0.1.129</currentVersion>
    <fileSku>OnPremise</fileSku>
    <currentSku>OnPremise</currentSku>
</upgradeSolutionPackageInformation>
<entities>
    <entity LocalizedName="Firma" OriginalName="Firma" Description="" id="Account" processed="true">
        <result result="failure" errorcode="0x80044150" errortext="Ein Element mit dem gleichen Schlüssel wurde bereits hinzugefügt." datetime="13:08:26.96" datetimeticks="635818073069658863" />
    </entity>
</entities>
<nodes />
<settings />
<dashboards />
<securityroles />
<workflows />
<templates />
<optionSets />
<ConnectionRoles />
<SolutionPluginAssemblies />
<SdkMessageProcessingSteps />
<ServiceEndpoints />
<webResources />
<reports />
<FieldSecurityProfiles />
<convertrules />
<routingrules />
<Slas />
<languages>
    <language>
        <result result="success" errorcode="0" errortext="" datetime="13:08:11.07" datetimeticks="635818072910798185" />
    </language>
</languages>
<entitySubhandlers>
    <savedQuery LocalizedName="Firma" OriginalName="Firma" Description="" id="Account" processed="false"/>
    <formXml LocalizedName="Firma" OriginalName="Firma" Description="" id="Account" processed="false">
    </formXml>
    <entityCustomResources LocalizedName="Firma" OriginalName="Firma" Description="" id="Account" processed="false"/>
    <entityRibbon LocalizedName="Firma" OriginalName="Firma" Description="" id="Account" processed="false"/>
    <savedQueryVisualization LocalizedName="Firma" OriginalName="Firma" Description="" id="Account" processed="false">
    </savedQueryVisualization>
</entitySubhandlers>
<rootComponents>
    <rootComponent processed="false" />
</rootComponents>
<dependencies>
    <dependency processed="false" />
</dependencies>

我在互联网上找到的所有内容都指向属性的问题(类型不匹配,...),但在我的情况下,这是同一个组织,没有从 dev 转移到 prod 或类似的东西...

我们正在使用 CRM 2015,但我们在 2011 年就遇到了这个问题。

有没有人解决这个问题?我们不想每次在导入解决方案之前都编辑 custom.XML...

这是数据库字段

[OwnerId] [uniqueidentifier] NOT NULL CONSTRAINT [DF_AccountBase_OwnerId]  DEFAULT ('00000000-0000-0000-0000-000000000000')

谢谢

托比亚斯

【问题讨论】:

  • 您是否尝试过从其他环境导入原版帐户?
  • 还没有。当我从另一个组织导入一个普通帐户时,这不会破坏我的表单吗?
  • 是的,会的。我建议先从您的主要环境中导出帐户,以便之后重新导入以恢复表单。但是,您会遇到无法重新导入的风险。有点问题 22.

标签: dynamics-crm


【解决方案1】:

您看到的错误非常普遍,但是您知道是哪个属性导致了问题,这一事实使事情变得容易多了。通常可以通过直接更改数据库来修复损坏的元数据(不支持!)来解决此类问题,但这需要 SQL 开发人员对 CRM 元数据表的工作方式有相当的了解。如果你有这样的人,我可以提供额外的指导,否则你应该向 Microsoft 创建一个案例。

【讨论】:

    【解决方案2】:

    当我尝试重新安装已与以前版本的 CRM 脱机的 CRM 2016 Outlook 时,会发生这种情况。卸载 CRM 和 SQL server 相关项目,清理注册表删除所有与安装相关的文件夹和文件。我认为值得一提的是,这些安装适用于其他 PC 上的相同 CRM 环境。

    【讨论】:

      【解决方案3】:

      您的 OwnerId 数据库字段看起来不错。从您的目标组织中删除任何具有通用名称的自定义字段,然后再次尝试导入。例如,如果您在两者上都有 new_LastEmailDate,或者任何与解决方案中的自定义字段执行相同功能的自定义字段,请将其从目标中删除。您的一个自定义字段被识别为现有字段的新增内容,可能是由于大写。如果您是从新解决方案中写入它,则无论如何都不需要在目标中使用它,并且将替换一个不冲突的副本。

      【讨论】:

        猜你喜欢
        • 2020-06-13
        • 2011-01-27
        • 2021-08-02
        • 2011-03-01
        • 2017-11-17
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多