1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Cognosレポートの多言語対応(その2)

Last updated at Posted at 2017-12-27

前回の続きでCognosのレポートを多言語対応化する方法その2です。

ひとつ前の記事
Cognosレポートの多言語対応(その1)

#第2回 モデルの変更

下の2つのパターンについて変更方法を説明します。どちらもFramework Managerを使ってモデルを変更します。
・コンテンツ言語に応じて参照する列を変えるパターン
・参照する行をフィルタリングするパターン

##コンテンツ言語に応じて参照する列を変えるパターン

  1. Framework Managerでモデルを開きます。

  2. パラメータ・マップを作成します。
    パラメータ・マップ- > 作成 -> パラメータ・マップを選択
    20171227_002512_e.png

  3. キーと値のペアを定義します。
    キーの部分は日本語の場合はja、英語の場合はenとなります。
    値の部分は参照する列を識別するためのものです。
    20171227_002513.png

  4. クエリー・サブジェクトを作成します。
    下の例では、PRODUCT_LINEのデータアイテムに式を使い、コンテンツ言語に応じて参照するカラムを変えています。
    20171227_002515.png

#'[gosales].[PRODUCT_LINE].[PRODUCT_LINE_'+ $CA_LanguageMap{$runLocale}+ '] '#

このようなクエリーサブジェクトを作成しておくことで、 PRODUCT_LINEデータアイテムを参照したときに、コンテンツ言語が日本語のときは PRODUCT_LINE_JA というカラムが、
コンテンツ言語が英語のときは PRODUCT_LINE_EN というカラムが参照されるようになります。

##コンテンツ言語に応じて参照する行をフィルタリングするパターン
特定の列に言語を識別する値が入っている場合は、コンテンツ言語に応じて参照する行を絞り込むことができます。

  1. パラメータ・マップを作成します。
    下の例ではPRODUCT_LANGUAGEというカラムにJAやENといった値が入っているテーブルを参照しているため、上のパターンで作成したパラメータ・マップをそのまま流用しています。

  1. クエリーサブジェクトを作成します。
    フィルタータブで、コンテンツ言語に応じた行に絞り込むための式を定義します。20171227_002517.png
[CALangModel].[PRODUCT_NAME_TABLE].[(ja) PRODUCT_LANGUAGE]  = #sq($CA_LanguageMap{$runLocale})#

このようなクエリーサブジェクトを作成しておくことで、
コンテンツ言語が日本語のときは PRODUCT_LANGUAGE に JA という値が入った行が抽出され、コンテンツ言語が英語のときは PRODUCT_LANGUAGE に EN という値が入った行が抽出されるようになります。

第3回に続きます。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?