前回の続きでCognosのレポートを多言語対応化する方法その2です。
ひとつ前の記事
Cognosレポートの多言語対応(その1)
#第2回 モデルの変更
下の2つのパターンについて変更方法を説明します。どちらもFramework Managerを使ってモデルを変更します。
・コンテンツ言語に応じて参照する列を変えるパターン
・参照する行をフィルタリングするパターン
##コンテンツ言語に応じて参照する列を変えるパターン
-
Framework Managerでモデルを開きます。
-
キーと値のペアを定義します。
キーの部分は日本語の場合はja、英語の場合はenとなります。
値の部分は参照する列を識別するためのものです。
-
クエリー・サブジェクトを作成します。
下の例では、PRODUCT_LINEのデータアイテムに式を使い、コンテンツ言語に応じて参照するカラムを変えています。
#'[gosales].[PRODUCT_LINE].[PRODUCT_LINE_'+ $CA_LanguageMap{$runLocale}+ '] '#
このようなクエリーサブジェクトを作成しておくことで、 PRODUCT_LINEデータアイテムを参照したときに、コンテンツ言語が日本語のときは PRODUCT_LINE_JA というカラムが、
コンテンツ言語が英語のときは PRODUCT_LINE_EN というカラムが参照されるようになります。
##コンテンツ言語に応じて参照する行をフィルタリングするパターン
特定の列に言語を識別する値が入っている場合は、コンテンツ言語に応じて参照する行を絞り込むことができます。
- パラメータ・マップを作成します。
下の例ではPRODUCT_LANGUAGEというカラムにJAやENといった値が入っているテーブルを参照しているため、上のパターンで作成したパラメータ・マップをそのまま流用しています。
[CALangModel].[PRODUCT_NAME_TABLE].[(ja) PRODUCT_LANGUAGE] = #sq($CA_LanguageMap{$runLocale})#
このようなクエリーサブジェクトを作成しておくことで、
コンテンツ言語が日本語のときは PRODUCT_LANGUAGE に JA という値が入った行が抽出され、コンテンツ言語が英語のときは PRODUCT_LANGUAGE に EN という値が入った行が抽出されるようになります。
第3回に続きます。