指定したランタイム代替変数のアクティブ・データベースに対して、計算スクリプトを実行します。ランタイム代替変数は、拡張子が.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."); }
関連トピック