2009-09-01 37 views
3

UpdateListItemsへの更新を送信します。それは成功を返しますが、リスト項目は更新されません。どのように間違っているかを追跡する方法についてのアドバイスはありますか?以下はSharepoint UpdateListItemsリストが更新されない

生成されたXMLです:

<Batch OnError='Continue' ListVersion='1' ViewName=''> 
    <Method ID='1' Cmd='Update'> 
     <Field Name='ID'>11707</Field> 
     <Field Name='Business_x0020_Area'>Consumer</Field> 
     <Field Name='Team'>6;#IT Support</Field> 
     <Field Name='Job_x0020_Number'>TEMP</Field> 
     <Field Name='Media_x0020_Outlet2'>13;#BBC Parliament</Field> 
     <Field Name='Publication_x0020_Date'>2009-09-01 14:40:10</Field> 
     <Field Name='Narrative2'></Field> 
     <Field Name='Page_x0020_Number'>1</Field> 
     <Field Name='Media_x0020_Value'></Field> 
     <Field Name='Information_x0020_Only'>0</Field> 
     <Field Name='Date_x0020_Added'></Field> 
    </Method> 
</Batch> 

更新

私はU2Uに取得していますエラーが

0x81020014つまたは複数のフィールドタイプが正しくインストールされていないです。これらのフィールドを削除するには、リスト設定ページに移動します。

+0

にあなたはコードスニペットを投稿してもらえますか? – DevinB

+0

バッチ処理にC#を使用していますか?あなたは "ProcessBatchData"機能を使用していますか?あなたがいるなら、結果の文字列は何ですか? – DevinB

+0

私はlists.asmxでUpdateListItemsメソッドを使用しています。 – Jack

答えて

2

私はデータベースになかったCAMLの内部フィールドを持っていました。これは、それが上がる原因でした。

0

401は、あなたがログインしていないことを示しているか、またはあなたがログインしているユーザーにそのリストに対する権限がないことを示しています。バッチスクリプトを実行しているユーザーがサイトにログインし、リストを変更できることを確認します。

+0

ユーザーとしてログインすると、リスト内の項目を編集できます – Jack

+0

この問題は、ドメイン外のサーバーでリストを更新しようとしたためです。共有ポイントと同じサーバー上では、私は更新することができます。 – Jack

+0

クール!更新していただきありがとうございます。あなたは自分の答えを質問に加えるべきです。質問自体に編集するか、下部にある「投稿を投稿する」をクリックしてください。 – DevinB

1

私の最初の提案は、フィールド名を「Business_x0020_Area」ではなく「Business Area」のように保つことです。リストxmlファイルを調べるとき、フィールド名はそのように表示されます。 2番目の提案はあなたの日付フィールドについてです。あなたの日付が正しく構築されていることを確認してください。日付フィールドの形式は、YYYY-MM-DDTHH:MM:SSZです。 TとZは重要です。私はそれが助けて欲しい

0

私は日付

public DateTime dateForSp(string s) 
{ 
    string[] sd = s.Split('/'); 
    string[] yd = sd[2].Split(' '); 
    string[] hd = yd[1].Split(':'); 

    DateTime dt = new DateTime(Int32.Parse(yd[0]), 
           Int32.Parse(sd[0]), 
           Int32.Parse(sd[1]), 
           Int32.Parse(hd[0]), 
           Int32.Parse(hd[1]), 
           Int32.Parse(hd[2])); 

    return dt; 
} 

ため、このようなものを作ったし、コード

"<Field Name='SubmissionTime'>" + String.Format("{0:u}", dateForSp(this.rProperty["SubmissionTime"])) + "</Field>" 
関連する問題