目標: WEB ENABLED フォームを使用して、SharePoint 2010 リストからデータを取得します。次に、セカンダリ データを含む繰り返しテーブルから目的のデータのみを抽出し、それをメイン フォーム フィールドにミラーリングします。抽出されたデータは変更され、Nintex ワークフローを使用して別の共有ポイント リストに送信されます。IT 部門がこのプロジェクトに微笑んでいる場合は、データベースを使用します。
私が試したこと:ミラーリングされたデータを保存するために、メインフォームフィールドに「TEST」という名前の繰り返しグループに「TEST_CyS」という名前のフィールドを作成しました。このフィールドのデフォルト値は次のとおりです。
xdXDocument:GetDOM("REMOVED")/dfs:myFields/dfs:dataFields/d:SharePointListItem_RW[(count(../preceding-sibling::*[local-name() = "TEST"]) + 1)]/d:Cy_Statement
これは、フォームが更新されると更新されます。
- デフォルト値を設定すると、
count(../preceding-sibling::*[local-name() = "TEST"]) + 1
挿入された各グループが正確にカウントされます。 - デフォルト値を 1 から n までの任意の値に設定する
xdXDocument:GetDOM("REMOVED")/dfs:myFields/dfs:dataFields/d:SharePointListItem_RW[<INT>])]/d:Cy_Statement
と<INT>
、インデックスが参照されているセカンダリ データ フィールドの正しい情報がフィールドに表示されます。
物事がバラバラになるのは、2つを組み合わせるときです。
メイン データ ツリー:
セカンダリ データ ツリー:
前提:軸がメソッドpreceding-sibling::*[local-name() = "TEST"]
と共に呼び出されているため、軸が値を返していないと推測しています。GetDOM()
前の兄弟をメイン フォーム フィールドの正しいグループに戻そうとしましたが、カウントを開始する場所がわからず、infopath でエラーが表示されたため、それを試みるのはばかげていると感じました。
Function 'GetDOM' did not return a value, or it returned a value that cannot be converted to an XSL data type.
要約:これは、コードを書かなかったり、qRules のような Infopath 用の「プラグイン」を購入したりしなければ、失われた原因でしょうか? IT 部門は、コードが含まれるフォームを SharePoint サイトで実行できるようにすることに譲歩しません。また、SharePoint で入力するには Web 対応のフォームでなければならないというフォームの要件が定められています。
編集: VSTA へのアクセスもありません。VSTA をインストールできる可能性は非常に低いです。
これをやってのけるために使用できる別の方法はありますか?