EssCancelProcess() cancels an asynchronous process which has not yet completed.
ESS_FUNC_M EssCancelProcess (hCtx);
ESS_HCTX_T | hCtx |
hCtx | Essbase API context handle. |
None.
This function requires no special privilege.
ESS_VOID_T ESS_CancelProcess(ESS_HCTX_T hCtx) { ESS_FUNC_M sts = ESS_STS_NOERR; ESS_STR_T Script; ESS_PROCSTATE_T pState; ESS_USHORT_T Count; Script = "CALC ALL;"; sts = EssBeginCalc (hCtx,ESS_TRUE); if (!sts) sts = EssSendString (hCtx, Script); if (!sts) sts = EssEndCalc (hCtx); /************************************* Check process state and cancel it if it takes too long *************************************/ if (!sts) { sts = EssGetProcessState (hCtx, &pState); while(!sts || (pState.State != ESS_STATE_DONE)) { Count = Count + 1; if (Count == 1000) sts = EssCancelProcess(hCtx); sts = EssGetProcessState (hCtx, &pState); } } }