LOOKUP
別のソース値を参照する関数
*REC( ) ステートメント内で新規値を計算するため、LOOKUP 関数を使用して FACTOR 命令または EXPRESSION 命令に対して範囲データ外のソース値を割り当てることができます。
構文
*LOOKUP {Model}
*DIM [{LookupID}:]{DimensionName}="Value" | {CallingDimensionName}[.{Property}]
*DIM MEASURES="MeasureName"
*ENDLOOKUP
以下の例では、RATE 情報を読み込み、それを計算で使用します。FOR/NEXT を使用して複数の値を調べることもできます。
Environment: EnvironmentShell_V (EnvironmentShell サンプル環境のコピー)
モデル: 計画
*XDIM_MEMBERSET TIME = 2006.AUG
*XDIM_MEMBERSET P_ACCT=CE0004010
*XDIM_MEMBERSET CATEGORY=ACTUAL
*LOOKUP RATE
*DIM TIME="2006.AUG"
*DIM CATEGORY="ACTUAL"
*DIM R_ACCT="AVG"
*DIM R_ENTITY="GLOBAL"
*DIM RATEEUR:INPUTCURRENCY="EUR"
*DIM MEASURES="PERIODIC"
*ENDLOOKUP
*WHEN P_ACCT
*IS "CE0004010"
*REC(EXPRESSION=%VALUE%/LOOKUP(RATEEUR), RPTCURRENCY="EUR")
*ENDWHEN
以下の例では、最初に *SELECT 命令ですべてのレポート通貨を読み込み、その値を変数 %CUR% に割り当てます。FOR/NEXT を使用して、RATE モデルからそれらのレートを読み込みます。次に、読み込んだレートを使用して計算を行います。
スクリプト実行前のモデルの値:
PLANNING モデルデータ:
TIME |
P_ACCT |
ENTITY |
P_ACTIVITY |
CATEGORY |
通貨 |
P_DATASRC |
SignData |
2006.AUG |
CE0004010 |
C9000 |
NONE |
ACTUAL |
LC |
UPLOAD |
157,915.81 |
レートモデルデータ:
カテゴリ |
InputCurrency |
R_ACCT |
R_ENTITY |
TIME |
SignData |
ACTUAL |
EUR |
AVG |
GLOBAL |
2006.AUG |
1.5022 |
ACTUAL |
USD |
AVG |
GLOBAL |
2006.SEP |
1.0000 |
*XDIM_MEMBERSET TIME=2006.AUG
*XDIM_MEMBERSET P_ACCT=CE0004010
*XDIM_MEMBERSET CATEGORY=ACTUAL
*SELECT(%CUR%, "[ID]", RPTCURRENCY, "[REPORTING]=Y")
*LOOKUP RATE
*DIM CATEGORY="ACTUAL"
*DIM R_ACCT="AVG"
*DIM R_ENTITY="GLOBAL"
*DIM TIME="2006.AUG"
*DIM MEASURES="PERIODIC"
*FOR %LOOP_CUR%=%CUR%
*DIM C_%LOOP_CUR%:INPUTCURRENCY="%LOOP_CUR%"
*NEXT
*ENDLOOKUP
*WHEN P_ACCT
*IS "CE0004010"
*FOR %LOOP_CUR%=%CUR%
*REC(EXPRESSION=%VALUE%/LOOKUP(C_%LOOP_CUR%), RPTCURRENCY=%LOOP_CUR%)
*NEXT
*ENDWHEN
スクリプト実行後のモデルの値:
2006.AUG |
CE0004010 |
C9000 |
NONE |
ACTUAL |
EUR |
UPLOAD |
105,123.03 |
2006.SEP |
CE0004010 |
C9000 |
NONE |
ACTUAL |
USD |
UPLOAD |
157,915.81 |
プロパティ値を範囲メンバーに渡してデータを調べることもできます。
この例では、対応するエンティティの通貨はマスタデータから読み込まれ、レート値を調べるために使用されます。
*XDIM_MEMBERSET TIME = 2007.AUG
*XDIM_MEMBERSET P_ACCT=CE0004010
*XDIM_MEMBERSET CATEGORY=ACTUAL
*XDIM_MEMBERSET ENTITY=C9000
*LOOKUP RATE *DIM TIME="2006.AUG"
*DIM CATEGORY="ACTUAL"
*DIM R_ACCT="AVG"
*DIM R_ENTITY="GLOBAL"
*DIM RATE:INPUTCURRENCY=ENTITY.CURRENCY
*DIM MEASURES="PERIODIC"
*ENDLOOKUP
*WHEN P_ACCT
*IS "CE0004010"
*REC(EXPRESSION=%VALUE%/LOOKUP(RATE), RPTCURRENCY=ENTITY.CURRENCY)
*ENDWHEN
制限事項
異なるルックアップ ID の割当による単一 LOOKUP 内での複数メジャーの読込はサポートされていません。
この文書に含まれるソフトウェアコーディングおよびコード行/文字列 (以下 "コード" という) は例として示されるものであり、本稼動システム環境で使用することを意図するものではありません。コードは、特定のコーディングの構文とフレージングルールを分かりやすく説明し、視覚化することを目的としています。SAP は、ここで提供されるコードの正確性や完全性を保証せず、コードの使用によって生じたエラーまたは損害に対して責任を負いません。ただし、当該損害が SAP の故意または重大な過失によって生じた場合は除くものとします。