InfoPath 2010 フォームに問題があり、背後にコードが含まれています。私のフォームの目的は、ユーザーからデータを収集し、提供された回答を使用して、いくつかの必要なタスクを自動入力することです。これらのタスクは、フォームの繰り返しセクションに入力されます。私のコードビハインドには、繰り返しセクションの各エントリを自動入力するロジックが含まれています。XMLWriter クラスと WriteStringElement メソッドを使用して、繰り返しセクションの各フィールドに入力しています。
最初は、このロジックはすべて期待どおりに機能しているように見え、セクションは期待どおりに設定されています。しかし、フォーム XML に書き込まれたフィールドに問題があることに気付きました。
ワークフローを使用して、繰り返しセクションのアイテムごとに SharePoint タスクを生成しています。タスクの完了に続いて、ステータスと完了日をフォームに書き戻しています。私が抱えている問題は、最初にフォームでタスクを設定するときに、明らかに CompletedDate フィールドにデータを入力していないことです。xsi:nil=true 属性を使用して、フィールドがフォーム XML に自動的に追加されると想定しました。代わりに、XML にはまったく含まれておらず、私のワークフローは、ノード「faCompletedDate」を探すときにオブジェクト参照が設定されていないというエラーをスローします。フォームのXMLを確認したところ、ありません。
私が必要だと思う解決策は、フォームの背後にあるコードで xsi:nil 属性を faCompletedDate に書き出すことです。これがどのように行われるかわかりません。
私が試した:
writer.WriteStartElement("faCompletedDate", myNs)
writer.WriteAttributeString("xsi", "nil", xsiNs, "true")
writer.WriteEndElement()
しかし、これはスキーマ検証が非データ型エラーを発見したことをスローします。
誰かがこの問題に対処し、使用するための最良のアプローチを提案するのを手伝ってくれますか.