サーバー管理 > レポート > 高度なレポート レシピの記述 > Query 関数と Walk 関数
  
Query 関数と Walk 関数
レポートレシピで、元のクエリーで返されるアイテムだけではなく、クエリーで返される関連アイテムも作成中のレポートのスコープに含める必要がある場合は、Query 関数と Walk 関数を使用します。たとえば、ドキュメントのコンテンツまたはアイテム階層で移動を使用したいとします。移動には複数の関連を指定することもできます。
構文とその結果の例を次に示します。
Query[((field[ID]=<%<%builtin ID%>%>)or(walk[<%builtin Contained By%>]<%<%builtin ID%>%>))]
現在のアイテム (field[ID]) を返すだけでなく、現在のアイテムからツリーを上位にウォークすることによって取得されたすべてのアイテムを返します。
Query[((field[ID]=<%<%builtin ID%>%>)or(walk[<%builtin Contains%>]<%Relationship<%builtin ID%>%>))]
現在のアイテムを返すだけでなく、(関連タグ内で) 現在のアイテムに関連したアイテムからツリーを下位にウォークすることによって取得されたすべてのアイテムを返します。
Query[((walk[<%builtin Contained By%>]<%<%builtin ID%>%>)and(item.segment))]
ツリーを上位にウォークすることによって取得されたセグメント アイテムを返します。
Query[((item.node)and((field[ID]=<%<%builtin ID%>%>)or(walk[<%builtin Contained By%>]<%<%builtin ID%>%>)))]
現在のノードを含むすべてのノード、および、現在のアイテムからツリーを下位にウォークすることによって取得されたすべてのノードを返します。
レポート内のドキュメントを示す
walkDocOrderedQuery[(walkdocordered[<%<%builtin ID%>%>])]%>
ID で指定されたドキュメントのコンテンツを返します。コンテンツはドキュメントビューに表示される順序で返されます。
含まれるドキュメントに walkDocOrdered クエリーを再帰的に処理するための recurseinclude フラグを指定します。
walkDocOrderedQuery[(walkdocordered[<%<%builtin ID%>%>]recurseinclude)]%>
フィルタは、フィルタタグでレポートレシピを更新することによってのみ適用できます。レポートが実行されたビュー内に適用されたフィルタは生成されたレポートには適用されません。Section フィールドをフィルタリングに使用できません。
次に例を示します。
<%beginrelationshipsdetail Query[(walkdocordered[<%<%builtin ID%>%>]recurseinclude)]%>
<%filter%>(field[Category] = “Heading”)<%endfilter%>"
<% Relationship <%virtual Section%>%>
<%Relationship <%builtin Category%>%>
<%Relationship Text%>
<%Relationship <%builtin Document ID%>%>
<%endrelationshipsdetail%>
ドキュメントのコンテンツに関連するアイテムの詳細を返す
ドキュメントのコンテンツに関連するアイテムの詳細を返すには、ネストされた関連タグを使用します。
次に例を示します。
<%beginrelationshipsdetailL2 Query[(walkdocordered[<%Relationship <%builtin ID%>%>]recurseinclude)]%>
<%RelationshipL2 <%virtual Section%>%>
<%RelationshipL2 <%builtin Category%>%>
<%RelationshipL2 Text%>
<%RelationshipL2 <%builtin ID%>%>
<%RelationshipL2 <%builtin Document ID%>%>
<%beginrelationshipsdetailL3 Validated By%>
<%RelationshipL3 <%builtin ID%>%>
<%endrelationshipsdetailL3%>
<%endrelationshipsdetailL2%>
レポートにセクションを含める
レポート内にセクション番号を含めるには、<%virtual section%> タグを他の関連タグおよび walkDocOrdered クエリー句と組み合わせて使用します。
たとえば、セクション、カテゴリ、テキスト、およびドキュメント ID の値で構成されるレポートを生成するには、次の構文をレポートレシピに含めます。

<%begindetail%>
<%beginrelationshipsdetail
Query[(walkdocordered[<%<%builtin ID%>%>]recurseinclude)]%>
<%Relationship <%virtual Section%>%>
<%Relationship <%builtin Category%>%>
<%Relationship Text%>
<%Relationship <%builtin Document ID%>%>
<%endrelationshipsdetail%>
<%enddetail%>

既知の制限事項
walkDocOrdered クエリー句が他の句と組み合わされていない場合にのみ、そのドキュメントのセクション番号は正しくなります。