BDC モデル: FAQ

このトピックには、BDC モデルに関してよく寄せられる質問とその回答が記載されています。

最終更新日: 2010年7月16日

適用対象: SharePoint Server 2010

この記事の内容
更新操作が、"'CustomerId' というフィールドが入力として指定されましたが、名前空間 'WestCoastSales' 内の名前 'Customer' を持つエンティティ上にある 'UpdateCustomer' という名前を持つメソッド用の 'Updater' メソッド シグネチャ上には当該フィールドが見つかりません。" というエラーで失敗するのはなぜですか。作成操作と削除操作は適切に動作します。
基本認証のみが有効であるインターネット インフォメーション サービス (IIS) にホストされる Web サービス用の BDC モデルを作成しました。この Web サービスの WSDL にブラウザーを介してアクセスしようとすると、ユーザー名とパスワードを要求するフォームが表示されます。この場合、BDC モデルを SharePoint にインポートできるように、安全な方法で資格情報を渡すにはどのようにすればいいですか。
あるコンピューター上の BDC と別のコンピューター上の Web サービス間の SOAP 要求と SOAP 応答を確認するには、どうすればいいですか。
他のユーザーが外部リストを表示できないのはなぜですか。"この Web パーツを表示できません。問題を解決するには、Microsoft SharePoint Designer のような SharePoint Foundation 互換の HTML エディターでこの Web ページを開きます。それでも問題が解決しない場合は、Web サーバー管理者に連絡してください" というエラーが発生します。
BDC モデル ファイルの名前を付けるにはどうすればいいですか。

更新操作が、"'CustomerId' というフィールドが入力として指定されましたが、名前空間 'WestCoastSales' 内の名前 'Customer' を持つエンティティ上にある 'UpdateCustomer' という名前を持つメソッド用の 'Updater' メソッド シグネチャ上には当該フィールドが見つかりません。" というエラーで失敗するのはなぜですか。作成操作と削除操作は適切に動作します。

識別子が読み取り専用としてマークされていないにもかかわらず、Update メソッドが識別子値を更新できないため、この問題が発生します。

識別子が読み取り専用の場合は、出力パラメーターの識別子に対応するすべての TypeDescriptor 要素を ReadOnly = "true" としてマークして、この問題を解決します。

注意

識別子はアイテムの作成中は読み取り専用のままで、ユーザーが設定できます。しかしアイテムの作成後は識別子を変更できません。

識別子が読み取り専用でない場合、このエラーの原因として、外部システム API が正しくないことが考えれます。つまり以下のいずれかを意味しています。

  • Update メソッドがこの特定の識別子を更新できません。

  • モデルが正しくありません。つまり識別子が正しく指定されていません。

  • エンティティに複数の識別子のセットがあり、各セットは EntityInstance を明確に特定できますが、それがサポートされていません。

注意

更新可能な識別子については、外部システムは以前の値とメソッド署名内の新しい識別子値を取得する必要があります。

基本認証のみが有効であるインターネット インフォメーション サービス (IIS) にホストされる Web サービス用の BDC モデルを作成しました。この Web サービスの WSDL にブラウザーを介してアクセスしようとすると、ユーザー名とパスワードを要求するフォームが表示されます。この場合、BDC モデルを SharePoint にインポートできるように、安全な方法で資格情報を渡すにはどのようにすればいいですか。

Secure Store を使用して、資格情報を渡すことができます。BDC モデルで資格情報モードを Credentials に設定し、対応するターゲット アプリケーション用の Secure Store にユーザー識別子とパスワードを入力します。

あるコンピューター上の BDC と別のコンピューター上の Web サービス間の SOAP 要求と SOAP 応答を確認するには、どうすればいいですか。

Windows Communication Foundation (WCF) には、この目的のために独自のインフラストラクチャがあり、メッセージ ログを記録しアクティビティを追跡します。お知りになりたいのは、おそらく、アクティビティの追跡ではなくメッセージ ログだと思います。web.config ファイルを変更して、メッセージ ログを構成します。詳細については、「メッセージ ログを構成する」を参照してください。

注意

クライアント側のメッセージ ログ (SOAP 応答) は、クライアント バインディング用の web.config ファイルを変更して設定します。サーバー側のログ (SOAP 要求) は、サービスをホストする Web App 用の web.config ファイルを変更して設定します。SvcTraceViewer.exe を使用すると、ログに記録されたメッセージを表示できます。詳細については、「サービス トレース ビューアー ツール (SvcTraceViewer.exe)」を参照してください。

他のユーザーが外部リストを表示できないのはなぜですか。"この Web パーツを表示できません。問題を解決するには、Microsoft SharePoint Designer のような SharePoint Foundation 互換の HTML エディターでこの Web ページを開きます。それでも問題が解決しない場合は、Web サーバー管理者に連絡してください" というエラーが発生します。

このエラーには、いくつかの原因が考えられます。たとえば他のユーザーが、外部システムまたはメタデータに対するアクセス権を持っていない可能性があります。

ユーザーがメタデータに対するアクセス権を持っていないために (既定ではアクセス権を持っているのは所有者のみ)、アクセス拒否エラーが発生する場合、モデルまたは外部コンテンツ タイプのアクセス制御リスト (ACL) を変更して、ユーザーに "実行" 権を与えることができます。これを行う最も簡単な方法は、SharePoint サーバーの全体管理の BDC 管理ユーザー インターフェイスを使用して、アクセス許可を設定して、外部コンテンツ タイプの子オブジェクトに伝播することです。より細かいレベルでアクセス権を制御しなければならない場合は、モデルのリソース (アクセス許可のみを含む) をエクスポートし、アクセス許可を変更し、そのリソースを再インポートすることができます。

BDC モデル ファイルの名前を付けるにはどうすればいいですか。

Microsoft Business Connectivity Services (BCS) を使用すると、Microsoft SharePoint Designer 2010、Microsoft Visual Studio 2010、または SharePoint サーバーの全体管理の BDC 管理ユーザー インターフェイスを使用して、BDC モデルを生成できます。モデルが生成されたら、.bdcm ファイル名拡張子が付加されます。

Business Connectivity Services ソリューションの展開の要件は、ソリューションに含まれる BDC モデルの名前が metadata.xml であることです。BCS ソリューション パッケージ ツール (英語)では、この名前のモデル、または .bdcm ファイル名拡張子を持つ BDC モデルを使用できます。ただし独自のパッケージング ツールを作成するか、Microsoft Visual Studio 2010 の Microsoft Office 開発ツールで作成された ClickOnce Microsoft Office ソリューション用の展開後アクションを手動で追加する場合は、既定の .bdcm ファイル名拡張子を使用しないで、BDC モデルの metadata.xml の名前を変更する必要があります。