*REC
*REC( ) 命令は、指定した基準を満たした後に何をすべきかをプログラムに指示します。
各 REC 命令により、データベースに転記される新規レコードが 1 つ生成されます。示している宛先セルが同じセルであっても、各ソースレコードにより、必要なレコード数だけ生成されます。
REC( ) 関数のパラメータにより、元のレコードで修正する箇所が指定されます。以下の構文を使用して、すべてのディメンションメンバーを修正することができます。
{DimensionName}={member}
*XDIM_MEMBERSET P_ACCT = CE0004010
*WHEN CATEGORY
*IS ACTUAL *REC(FACTOR = 1.1, CATEGORY="FORECAST")
*ENDWHEN
WHEN ステートメントにプロパティ値を使用することができます。
*XDIM_MEMBERSET CATEGORY = PLAN
*WHEN TIME.YEAR
*IS "2007"
*REC(FACTOR = 1.1, CATEGORY="FORECAST")
*ENDWHEN
上記のスクリプトは 2007 年度計画データを予測にコピーします。プロパティ値を読み込み、それらをディメンションに割り当てることもできます。
*XDIM_MEMBERSET P_ACCT = CE0004010,CE0652000
*WHEN P_ACCT
*IS "CE0004010"
*REC(EXPRESSION=([P_ACCT].[CE0004010],[P_ACTIVITY].[NONE])/([P_ACCT].[CE0652000],[P_ACTIVITY].[LABPRD]), RPTCURRENCY=[ENTITY].CURRENCY, P_ACCT=CE0661000)
*ENDWHEN
REC 命令を使用する場合の制限
FACTOR または EXPRESSION 命令で、他の MDX キーワード (PARENT、DESCENDANTS など) を使用することはできません。使用可能な演算子は、加算 (+)、減算 (-)、乗算 (*)、除算 (/)、これらの演算子の組合せ、および演算子のタプルと優先順位を示す括弧です。
GET() 機能を使用して、別のソース値を参照することはできません。MDX タプル形式は GET 関数として機能します。
REC 内で NOADD または FLD 関数を使用することはできません。
REC ステートメントでは、HLEVEL、PARENTHn などの動的プロパティはサポートされません。
REC は常に WHEN/IS/ENDWHEN と一緒に使用する必要があります。REC ステートメント単独では効果はありません。
WHEN ステートメントで SIGNEDDATA または任意のメジャー名を使用して、メジャー値の条件を書き込むことはできません。
WHEN/IS/REC/ENDWHEN は SELECTCASE/ENDSELECT では使用できません。
複数の REC ステートメントの使用
1 つの WHEN/IS/ENDWHEN ステートメントに複数の REC ステートメントを書き込むことができます。
構文
*WHEN {dim}
* IS {condition_value}
*REC({FACTOR or EXPRESSION instruction},dim=…)
*REC({FACTOR or EXPRESSION instruction},dim=…)
*REC({FACTOR or EXPRESSION instruction},dim=…)
…
*ENDWHEN
*XDIM_MEMBERSET TIME = 2006.AUG,2006.SEP
*XDIM_MEMBERSET P_ACCT=CE0004010
*XDIM_MEMBERSET CATEGORY=ACTUAL
*WHEN P_ACCT
*IS "CE0004010"
*REC(EXPRESSION=%VALUE%/1.5098, RPTCURRENCY="EUR")
*REC(EXPRESSION=%VALUE%/1.0666, RPTCURRENCY="CAD")
*REC(EXPRESSION=%VALUE%/1.9183, RPTCURRENCY="GBP")
*ENDWHEN
上記のスクリプトは、インフォプロバイダ内に EUR、CAD、および GBP 転記を登録します。
FACTOR/EXPRESSION 命令での別のソース値の参照
*REC( ) ステートメントで新規の値を計算するには、FACTOR または EXPRESSION 命令の範囲データからソース値を割り当てることができます。別のソース値を参照するには、勘定ディメンションを含む完全修飾された MDX 書式設定を使用する必要があります。
構文
*WHEN {dim}
* IS {condition_value}
*REC({FACTOR or EXPRESSION instruction},dim=…)
*REC({FACTOR or EXPRESSION instruction},dim=…)
*REC({FACTOR or EXPRESSION instruction},dim=…)
…
*ENDWHEN
Environment: EnvironmentShell_V (EnvironmentShell のコピー)
アプリケーション: 計画
*XDIM_MEMBERSET P_ACCT = CE0004010,CE0004020
*WHEN P_ACCT
*IS "CE0004010"
*REC(EXPRESSION=%VALUE%/[P_ACCT].[CE0004020], P_ACCT="CE0661000")
*ENDWHEN
タプルも同様に使用することができます。
Environment: EnvironmentShell_V (EnvironmentShell のコピー)
アプリケーション: 計画
*XDIM_MEMBERSET P_ACCT = CE0004010,CE0652000
*WHEN P_ACCT
*IS "CE0004010"
*REC(EXPRESSION=%VALUE%/([P_ACCT].[CE0652000],[P_ACTIVITY].[LABPRD]), P_ACCT="CE0661000")
*ENDWHEN
この文書に含まれるソフトウェアコーディングおよびコード行/文字列 (以下 "コード" という) は例として示されるものであり、本稼動システム環境で使用することを意図するものではありません。コードは、特定のコーディングの構文とフレージングルールを分かりやすく説明し、視覚化することを目的としています。SAP は、ここで提供されるコードの正確性や完全性を保証せず、コードの使用によって生じたエラーまたは損害に対して責任を負いません。ただし、当該損害が SAP の故意または重大な過失によって生じた場合は除くものとします。