Biztalk アダプタを使用して Commerce Server 2007 にクエリを実行しようとしています。
OrdersAdapter を使用して、特定の品目を含むすべての注文を照会しようとしています。
メッセージxmlは
<CommerceServerOrdersQuery>
<CLAUSE OPER="equal" xmlns="http://schemas.microsoft.com/CommerceServer/2004/02/Expressions">
<PROPERTY ID="LineItem.ProductId" MULTIVAL="false" TYPE="String" />
<IMMED-VAL TYPE="String">
<VALUE>xxx</VALUE>
</IMMED-VAL>
</CLAUSE>
</CommerceServerOrdersQuery>
PurchaseOrder.OrderStatus または注文書のプロパティでクエリを実行すると、正常に動作します。ただし、項目のプロパティを条件として使用しようとすると、このエラーで失敗します。
「ProductId」プロパティは、エンティティ「PurchaseOrder」の検索可能なプロパティではありません。検索可能なプロパティは、GetSearchableProperties メソッドによって返された DataSet を調べることで検出できます。
指定された GetSearchableProperties サービスにクエリを実行したところ、実際に LineItem.ProductId が検索可能なプロパティであることが示されました。さらに、.NET API を使用してこのクエリを実行すると、使用している正確な xml が生成され、動作することがわかります。問題は、BTS アダプターを使用するときに発生します。
これに関するドキュメントは非常に薄く、詳細な例はありません。どんな助けでも大歓迎です。
ありがとうございました。