指定したランタイム代替変数のアクティブ・データベースに対して、計算スクリプトを実行します。ランタイム代替変数は、拡張子が.rsvのテキスト・ファイル内で(このファイルはクライアント・コンピュータに存在する必要があります)、またはキー/値ペアの文字列として指定できます。
構文
ESS_FUNC_M EssCalcFileWithRuntimeSubVars (
hDestCtx
,
hSrcCtx
,
AppName
,
DbName
,
FileName
,
RtSV
,
bRtSVFile
,
Calculate
);
| パラメータ | データ型 | 説明 |
|---|---|---|
hDestCtx |
ESS_HCTX_T |
Essbaseサーバー上のターゲット・データベースのAPIコンテキスト・ハンドル |
hSrcCtx |
ESS_HCTX_T |
計算スクリプト・ファイルの場所のAPIコンテキスト・ハンドル。計算スクリプト・ファイルは、クライアント・コンピュータ上またはターゲット・データベースと同じEssbaseサーバー上に存在することができます。 |
AppName |
ESS_STR_T |
計算スクリプト・ファイルに関連付けられているアプリケーションの名前 |
DbName |
ESS_STR_T |
計算スクリプト・ファイルに関連付けられているデータベースの名前 |
FileName |
ESS_STR_T |
計算スクリプト・ファイルの名前。計算スクリプト・ファイルは、ターゲット・データベースの場所と同じEssbaseサーバー上、またはクライアント・コンピュータ上に存在することができます。 |
RtSV |
ESS_STR_T |
次のオプションのいずれか:
この引数は、bRtSVFile引数とともに使用されます。 |
bRtSVFile |
ESS_BOOL_T |
RtSV引数がランタイム代替変数ファイルの名前とフル・パスを参照するか(TRUE)、ランタイム代替変数のキー/値ペアの文字列を参照するか(FALSE)を示すフラグ。 |
Calculate |
ESS_BOOL_T |
計算スクリプトの計算を制御します。TRUEの場合は、計算スクリプトが実行され、呼出しは非同期になります。 |
戻り値
なし。
アクセス
この関数を呼び出すには、アクティブ・データベースに対する計算権限(ESS_PRIV_CALC)が必要です。
例
void Ess_CalcFileWithRuntimeSubVars(ESS_HINST_T hInst, ESS_HCTX_T hCtx)
{
ESS_STS_T sts;
ESS_STR_T AppName = "Sample";
ESS_STR_T DbName = "Basic";
ESS_STR_T FileName = "testrt"; \\ Server side calc script file. PLease provide this when using server side calc script file
//ESS_STR_T FileName = "D:\\temp\\testrt.csc"; \\Client side calc script file.
//ESS_STR_T Param = "D:\\temp\\temp1.rsv"; \\ Client side param file.
ESS_STR_T Param = "mySales=700"; \\ Client side param string.
ESS_BOOL_T Calculate = TRUE;
ESS_ACCESS_T Access;
ESS_PROCSTATE_T pState;
ESS_HCTX_T hLocalCtx = ESS_INVALID_HCTX;
sts = EssCreateLocalContext (hInst, ESS_NULL, ESS_NULL, &hLocalCtx);
//hLocalCtx = hCtx;
//sts = EssSetActive (hCtx, AppName, DbName, &Access);
//For calc file on server With Param String
sts = EssCalcFileWithRuntimeSubVars(hCtx, hCtx, AppName, DbName, FileName, Param, FALSE, Calculate);
//For Calc file on client With Param String
sts = EssCalcFileWithRuntimeSubVars(hCtx, hLocalCtx, NULL, NULL, FileName, Param, FALSE, Calculate);
//For calc file on server With Param File
sts = EssCalcFileWithRuntimeSubVars(hCtx, hCtx, AppName, DbName, FileName, Param, TRUE, Calculate);
//For calc file on client With Param File
sts = EssCalcFileWithRuntimeSubVars(hCtx, hLocalCtx, NULL, NULL, FileName, Param, TRUE, Calculate);
if (!sts)
{
sts = EssGetProcessState (hCtx, &pState);
while(!sts && (pState.State !=
ESS_STATE_DONE))
sts = EssGetProcessState (hCtx, &pState);
}
if(sts)
printf("API could not be executed.");
}
関連トピック