ビューのメタデータとグリッド データを取得したら、変換のために列と行のアイテムをマッピングします。
アイテムをマッピングするには以下を実行します。
- 適切な列アイテムで列インデックスをマッピングします。
列に複数のディメンションがある場合、列インデックスを複数のアイテムにマッピングします。 - 列ごとに行アイテムをマッピングします。
例
これでデータを取得できたので、次に列アイテムと行アイテムをマッピングします。
列アイテムのマッピング
ここからは、適用する列アイテムに列インデックスをマッピングします。たとえば、値が「10」の列 1 では列アイテムとして「UK」を使用し、列 2 では「France」、列 3 では「Germany」、列 4 では「Total Company」を使用します。
ビューのメタデータを見ると、このビューにページがあることがわかるため、最初の行は処理する必要がありません。次のような処理を実行します。
- 列にディメンションが 1 つしかないため、すべての列をマッピングするにはグリッドのレスポンスの次の列だけを処理する必要があります。
- また、最初の
n
列をスキップします。n
は行ディメンションの数で、グリッドのレスポンスの以下のエントリは行のアイテムのラベルです。
1 2 3 4
,UK,France,Germany,Total Company
Units Sold,10,20 ,30 ,60
これで ColumnItems のマップは次のようになります: { 1 → UK; 2 → France; 3 → Germany; 4 → Total Company }
列に複数のディメンションがある場合、列インデックスを複数のアイテムにマッピングします。例: { 1 → UK, Alice ; 2 → UK, Bob ; 3 → France, Alice … }
列にディメンションがない場合、マップを空に設定するか、{ 1 -> null }
のキーと値のペアを設定できます。
出力を構築する際、このエントリによって余計な列が追加されないよう注意する必要があります。このエントリは、ビュー内の列に引き続き表示される値としてセル データを抽出するために使用されます。
行アイテムのマッピング
次に、行アイテムをマッピングします。行アイテムを含むグリッドのレスポンスの最初の列を使用しますが、ページ行とディメンション アイテムを含む行は処理しません。
行にはディメンションが 1 つしかないため、残りのレスポンスの最初の列だけを処理する必要があります。
1 Units Sold,10 ,20 ,30 ,60
2 Produced ,100,200,300,600
これで RowItems のマップは { 1 → Units Sold; 2 → Produced }
のようになります。