This page is in Japanese version. The English version is in preparation.

フォームのデータインポートで、マスター(ディメンション)に無いコードをはじきたい

Form

質問

フォームのデータインポートで、マスター(ディメンション)に無いコードを使用しているデータは、インポートせずにはじきたい(ただしエラーにはしたくない)。

例)他システムで管理されている為替レートデータをインポートする際、当アプリケーションで通貨ディメンションに登録されている通貨に関するレート値だけを取り込みたい。

回答

基本的な考えとしては、フォームのインポート仕様で、インポートデータの通貨コードをキーに通貨ディメンションを検索し、通貨が無ければ #IGNORE することで、本件に対応できます。

例.

通貨ディメンションのラベルが「CURRENCY」であり、インポート仕様において通貨コードのフィールドのラベルが「CURR」であると仮定します。

以下のような算出フィールドを設けると、インプットデータの「CURR」フィールドの値をラベルとするメンバが通貨ディメンションに無い場合、当該データはスキップされます。

Table 1. スキップ用算出フィールド設定例
ラベル 名称 算出式

SKIP

スキップ条件(通貨登録なし)

IF Dimensions!CURRENCY.Item(CURR).Label =""
THEN "#IGNORE" ELSE "" ENDIF

上記の設定で、ラベルと名称は任意です。

ディメンションオブジェクトのItemメソッドは、与えられた文字列をラベルとするメンバを検索します。そうしたメンバが無い場合、ラベルも名称も空文字列であるようなオブジェクトを返します。

「Item メソッドに関する留意事項」もご覧下さい。

別解

別解として変換テーブルを用いる方法もあります。例えば、「取込対象通貨一覧」といった変換テーブルを設けて、以下のように設定します。

Table 2. スキップ用変換テーブル設定例
変換対象コード 変換先コード

JPY

JPY

USD

USD

EUR

EUR

*

#IGNORE

この変換テーブルをインポート用のフォームの「通貨コード」に適用します。

  • 簡易版フォームならば「通貨」ディメンションの行の「変換テーブル」欄で、上記変換テーブルを指定

  • フル機能版フォームの場合、インポート用のフォームの「インポート仕様」で定義した通貨コード用のフィールドの「変換テーブル」欄で、上記変換テーブルを指定

変換テーブルを用いると、計算式の記述は不要です。一方で、取り込み対象のコード値が増える場合(例えば CNY を取り込み対象とする場合)、ディメンションだけでなく変換テーブルもメンテナンスする必要があります。