0

XML Web サービス経由で SharePoint リストに接続するデータ ソースを SharePoint Designer で作成しようとしています。データ ソースを作成し、問題のリストに接続しました。GetListItems を使用してすべてのデータを表示でき、クエリ パラメーターを使用してそれをフィルター処理したいと考えています。

クエリ パラメーターは XmlNode を受け取ります。これを値として指定すると、エラーが発生します。

<Query>
    <Where>
        <Eq>
            <FieldRef Name="Title" />
            <Value Type="Text">Foo</Value>
        </Eq>
    </Where>
</Query>

もちろん、SharePoint Designer には 1 行の入力フィールドしかないので、タブや改行は入力していません。次のクエリでエラーが表示されます。

データ ソースからデータを取得しようとしたときに、サーバーが特定されていないエラーを返しました。クエリの形式と内容を確認して、もう一度お試しください。問題が解決しない場合は、サーバー管理者に連絡してください。

リスト項目の結果セットをフィルタリングして、「Foo」のタイトルフィールドを持つものにしたいだけです。これは SharePoint Designer で実行できますか?


更新: この方法で < および > をエスケープすることも失敗します:

&lt;Query&gt;&lt;Where&gt;&lt;Eq&gt;&lt;FieldRef Name=&quot;Title&quot; /&gt;&lt;Value Type=&quot;Text&quot;&gt;Foo&lt;/Value&gt;&lt;/Eq&gt;&lt;/Where&gt;&lt;/Query&gt;

更新: これは、SoapDataSource コンポーネントと SOAP 呼び出しに関する既知の問題のようです。どうやら、提出前に < と > を過剰にエンコードしているようです。与えられた回避策は、クエリ パラメーターを指定せずにデータ ソースを保存し、それをページに追加して、[コモン データ ビュー タスク] ダイアログでフィルターを作成することです。次のフィルター文字列を使用して、これを機能させることができました。

[@ows_Title = 'Foo']

残念ながら、他のコントロールを指すために使用できる DataSource (ドロップダウン リストなど) ではなく、Data View (データを表示する) を追加しているので、これはあまり役に立ちません。

SharePoint Designer を使用してデータソースを配置できる、これに関する優れたソリューションをまだ探しています。

4

4 に答える 4

2

SharePoint Designer にバグがあります。このように Query オブジェクトを SOAPDataSource に渡すことはできません。XML がオーバーエンコードされます。Visual Studio を使用する以外に、修正することはできません。

利用可能な修正プログラムがある場合はお知らせします。

誰かがこの回答を新しい回答で引用したい場合は、その回答を受け入れます。

于 2008-12-22T19:18:24.303 に答える
1

これは、変数を使用して同様の問題に対処する方法を示しています。

于 2011-10-26T05:27:15.287 に答える
1

クエリを XML エンコードしましたか? <、>、" などの文字を有効な XML にエンコードする必要があると思います。たとえば、次のようになります。

&lt;Query&gt;&lt;Where&gt;

&lt;FieldRef Name=&quot;Title&quot; /&gt;
于 2008-12-09T20:00:41.620 に答える
0

リストの Title フィールドを操作した後、「含む」を使用しない限り、値が返されません。

ただし、これでエラーが修正されない場合があります。

于 2008-12-09T21:18:10.077 に答える