ソリューションのインポート時に "このコンポーネントに対してこのアクションを完了できません" エラー

この記事では、Microsoft Dynamics 365でソリューションをインポートするときに発生する可能性がある管理プロパティの構成のため、このコンポーネントに対してこのアクションを完了できないというエラーの解決策を示します。

適用対象:Microsoft Dynamics 365
元の KB 番号: 4464328

現象

Microsoft Dynamics 365 でソリューションをインポートしようとすると、ソリューションのインポートが失敗し、次のメッセージが表示されます。

ソリューションのインポート: [ソリューション名] が失敗しました

[エラー] ダイアログにエラー状態が表示され、[ 詳細 ] 列に次のメッセージが表示されます。

管理プロパティの構成のため、このコンポーネントに対してこのアクションを完了できません

[ ログ ファイルのダウンロード ] を選択し、Excel の [ コンポーネント ] タブを表示すると、次のようなメッセージが表示されます。

状態列: 失敗
ErrorCode: 0x8004F026
ErrorText: 現在の操作の現在のコンポーネント (name=Entity, id=[GUID] の評価 (Update) は、条件の管理プロパティの評価中に失敗しました: 現在の操作 (更新) の現在のコンポーネント (name=Entity, id=[GUID] の評価は、条件の管理プロパティの評価中に失敗しました: マネージド プロパティ名: [ManagedPropertyLogicalName];コンポーネント名: エンティティ。属性名: [ManagedPropertyLogicalName];

原因

Microsoft は、Marketing List、SystemUser、Team、CustomerAddress、Position、TransactionCurrency エンティティなどの一部のエンティティを含むソリューションをインポートするときに、このエラーが発生する可能性がある問題を認識しています。 ソリューションにこれらのエンティティのいずれかが含まれている場合は、この記事の「解決策」セクションを参照してください。

このエラーは、ターゲット organizationで同じエンティティを使用してインポートしようとしているエンティティの管理プロパティに不一致があることを示します。 ターゲット エンティティ属性とソース エンティティ属性の不一致は、ターゲット organization (例 8.2 から 9.0) よりも古いバージョンであるソース organizationのバージョンに関連している可能性があります。 ターゲット organizationでシステム アップグレードが実行され、マネージド エンティティ属性が更新された場合、このエンティティの属性の別の定義が含まれている場合、ソリューションは失敗します。

例:Microsoft Dynamics 365 バージョン 8.2 では、Marketing List エンティティとの関係を持つカスタム エンティティが作成されます。 Microsoft Dynamics 365 バージョン 9.0 では、Microsoft Dynamics 365 モバイル アプリ (名前: IsVisibleInMobileClient、論理名: canmodifymobileclientvisibility) で表示できるように、Marketing List エンティティのマネージド属性を true に変更するシステム更新プログラムが適用されています。 マネージド ソリューションは、カスタム エンティティを含む 8.2 organizationからエクスポートされ、既定では、Marketing List エンティティ定義がソリューションに依存関係として含まれます。 マネージド ソリューションが Microsoft Dynamics CRM 9.0 organizationにインポートされると、属性定義が一致しません。 ターゲット organization内のエンティティは管理されており、マネージド属性は更新可能ではなく、別の発行元からであるため、ソリューション内のバージョンに変更できず、エラーが表示されます。

解決方法

Microsoft は、「原因」セクションで説明されているエンティティに対して、この問題の修正プログラムをリリースしています。 これらのエンティティのいずれかがソリューションの一部である場合は、その間に使用できる回避策があります。 ソリューション ファイルを変更して、ソースorganizationエンティティ属性値をターゲット organizationエンティティ属性と一致するように変更できます。

注:

この解決策は、このソリューションのこのインポートに対してのみ機能します。 ソリューションをソース organizationから再度エクスポートする場合は、この編集をもう一度完了する必要があります。 これは、修正プログラムがリリースされるまでの一時的な解決である必要があります。

  1. ソリューション ファイルを解凍します。

  2. テキスト エディターで customizations.xml ファイルを開く

  3. LogicalCollectionName を検索します (リスト、チームなど)。

    <EntitySetName>リスト</EntitySetName>

  4. 下にスクロールして、エラー メッセージに記載されている属性名を見つけます。 Marketing List エンティティの場合、属性は IsVisibleInMobileClient である可能性が最も高くなります。 [原因] セクションで説明されている他のエンティティの場合、フィールドは IsReadOnlyInMobileClient になります。

    <IsVisibleInMobileClient>0</IsVisibleInMobileClient>

  5. 現在の設定の反対の値に値を変更します (例: 0 から 1)。

    <IsVisibleInMobileClient>1</IsVisibleInMobileClient>

  6. すべてのファイルを新しい編集済みソリューションに圧縮し、インポートにこのソリューションを使用します。

詳細

一致しないターゲット organization内のエンティティは、エラー ダイアログで識別されます。 一致しない [ManagedPropertyLogicalName] 属性値を取得するには、Web API を使用して、GUID によって識別されるエンティティを取得します。

  1. Web ブラウザーを開き、ソリューションをインポートしようとしているターゲット organizationの Microsoft Dynamics 365 Web アプリケーションにアクセスします。

  2. 認証されたブラウザー セッションを使用できるように、タブを複製します (右クリックタブをクリックし、[複製] を選択します)。

  3. 新しいタブで、[GUID] をエラーの詳細の GUID 値に置き換え、[organizationURL] をorganizationの URL に置き換えるコマンドを実行します。https://[organizationURL]/api/data/v8.2/EntityDefinitions([GUID])

  4. [ManagedPropertyLogicalName] 内の文字列の出力を検索します。

  5. ソース organizationで同じ手順を実行し、エラー メッセージに記載されている属性の値を比較します。

例:

エラー メッセージ:

現在の操作の現在のコンポーネント (name=Entity, id=efd3a52d-04ca-4d36-a54c-2a26a64f5571) の評価は、条件の管理プロパティ評価中に失敗しました: 現在のコンポーネントの評価 (name=Entity, id=efd3a52d-04ca-4d36-a54c-2a26a64f5571) が条件の管理プロパティ評価中に失敗しました: マネージド プロパティ名: canmodifymobileclientvisibility;コンポーネント名: エンティティ。属性名: canmodifymobileclientvisibility;

クエリ https://[organizationURL]/api/data/v8.2/EntityDefinitions(efd3a52d-04ca-4d36-a54c-2a26a64f5571)を使用する場合、エンティティ DisplayName は Marketing List です

 "DisplayName":{
 "LocalizedLabels": [
 {
 "Label": "Marketing List",
 "LanguageCode": 1033,
 "IsManaged": true,
 "MetadataId": "<ID>",
 "HasChanged": null
 }
 ],
 The entities LogicalName is "list":
 "LogicalName": "list",
 And the entitiesLogicalCollectionName is "lists"
 "LogicalCollectionName": "lists",
 t.