CRM 解决方案导入失败"an item with the same key has already been added"



我在我们的一个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年就已经遇到了这个问题。

有人能解决这个问题吗?我们不想编辑自定义。每次导入解决方案之前都使用XML。。。

这是数据库字段

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

感谢

Tobias

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

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

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

相关内容

最新更新