ファイルからアクティブなデータベースに対して計算スクリプトを実行します。
構文
ESS_FUNC_M
EssCalcFile
(
hDestCtx, hSrcCtx, AppName, DbName,
FileName, 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 |
計算スクリプト・ファイルの名前。 |
Calculate |
ESS_BOOL_T |
計算スクリプトの計算を制御します。TRUEの場合は、計算スクリプトが実行され、呼出しは非同期になります。 |
備考
計算スクリプトのサイズは64KBを超えることはできません。
この関数が正しく実行され、計算を開始すると、この呼出しから戻った後も、サーバー上で非同期プロセスとして続行します。呼出し元はESS_STATE_DONEが戻されるまでEssGetProcessStateを呼び出して、プロセスが完了したことを定期的に確認する必要があります。
このAPI呼出しはCalculateパラメータがTRUEの場合にのみ非同期になります。それ以外の場合は、簡単な同期要求です。
非同期要求中は、要求の完了前に、制御がプログラムにすぐに戻されます。非同期要求の実行中は、現在のAPIコンテキスト・ハンドルに有効な要求のセットは限定されます。その間に無効な要求を渡すと、エラーが戻されます。非同期操作中のAPIコンテキストに有効なAPI呼出しは次のとおりです: EssGetProcessState、EssCancelProcess。
戻り値
なし。
アクセス
この関数を使用するには、呼出し元はアクティブなデータベースに対して計算権限(ESS_PRIV_CALC)を持っている必要があります。
例
ESS_FUNC_M
ESS_CalcFile (ESS_HCTX_T hCtx)
{
ESS_FUNC_M sts = ESS_STS_NOERR;
ESS_SHORT_T isResponse;
ESS_HCTX_T hSrcCtx;
ESS_BOOL_T isObject = ESS_FALSE;
ESS_STR_T AppName;
ESS_STR_T DbName;
ESS_STR_T FileName;
ESS_PROCSTATE_T pState;
hSrcCtx = hCtx;
AppName = "Sample";
DbName = "Basic";
FileName = "Test";
sts = EssCalcFile (hCtx, hSrcCtx, AppName,
DbName, FileName, ESS_TRUE);
if (!sts)
{
sts = EssGetProcessState (hCtx, &pState);
while (!sts && (pState.State !=
ESS_STATE_DONE))
sts = EssGetProcessState (hCtx, &pState);
}
return(sts);
}
関連トピック