集約ストレージ・データベース上でカスタム計算を実行または検証します。
構文
ESS_FUNC_M EssPerformCustomCalcASO (
hCtx, verifyOnly, errorList, calcStruct
);
パラメータ | データ型 | 説明 |
---|---|---|
hCtx |
ESS_HCTX_T |
APIコンテキスト・ハンドル。 |
verifyOnly |
ESS_BOOL_T |
計算を実行せずに検証するかどうかを示すフラグ。ESS_TRUEに設定されている場合、計算は検証のみ行われます。ESS_FALSEに設定されている場合、計算は検証および実行されます。 |
errorList |
ESS_PERF_ALLOC_ERROR_T** |
カスタム計算に関するエラー情報を含むAPIによって移入されて戻されるエラー構造体のリンク・リストへのポインタ。この引数は0にできません。リンク・リストはクライアントによって解放される必要があります。 |
calcStruct |
ESS_PERF_CUSTCALC_T* |
クライアントが割り当てたカスタム計算構造体およびパラメータへのポインタ。 |
戻り値
正常終了の場合は0が戻され、それ以外はエラーが戻されます。
例
void HandleErrors(ESS_HINST_T hInst, ESS_PERF_ALLOC_ERROR_T **pErrorList) { if (pErrorList) { ESS_PERF_ALLOC_ERROR_T *errorList = *pErrorList; ESS_PERF_ALLOC_ERROR_T *nextError; while (errorList) { printf("Error number %ld occurred\n", errorList->messageNumber); if (errorList->argument != ESS_PERF_ALLOC_ARG_NA) printf(" in argument %d\n", errorList->argument); if (errorList->lineNumber) printf(" on line %ld\n", errorList->lineNumber); if (errorList->token[0] != '\0') printf(" on token %s\n", errorList->token); nextError = errorList->nextError; ESS_STS_T sts = EssFree (hInst, errorList); printf("\nEssFree sts for errorList %ld\n",sts); errorList = nextError; } *pErrorList = NULL; } } void ESS_GLCustomCalc() { ESS_STS_T sts = ESS_STS_NOERR; ESS_BOOL_T verifyOnly; ESS_PERF_ALLOC_ERROR_T *errorList = ESS_NULL; ESS_PERF_CUSTCALC_T *calcStruct; sts = EssAlloc (hInst, sizeof(ESS_PERF_CUSTCALC_T), (ESS_PPVOID_T)&calcStruct); printf("EssAlloc sts for calcStruct: %ld\n", sts); sts = EssAlloc (hInst, sizeof(ESS_PERF_CUSTCALC_T), (ESS_PPVOID_T)&calcStruct); printf("EssAlloc sts: %ld\n", sts); verifyOnly = ESS_FALSE; errorList = ESS_NULL; calcStruct->pov = "{[1120], [1130]}"; calcStruct->script = "[Jan-96] := ([Feb-08], [041509GR PL2], [00], [[All Department Values]].[000]]], [0000], [[All Product Values]].[000]]], [Actual], [Beginning Balance Dr], [BASE], [USD], [Total]);"; calcStruct->target = "([041509GR PL2], [00], [[All Department Values]].[000]]], [0000], [[All Product Values]].[000]]], [Actual], [BASE], [USD], [Total])"; calcStruct->debitMember = "[Beginning Balance Dr]"; calcStruct->creditMember = "[Beginning Balance Cr]"; calcStruct->offset = ""; calcStruct->sourceRegion = "{([Feb-08], [041509GR PL2], [00], [[All Department Values]].[000]]], [0000], [[All Product Values]].[000]]], [Actual], [Beginning Balance Dr], [BASE], [USD], [Total])}"; calcStruct->groupID = 0; calcStruct->ruleID = 0; sts = EssPerformCustomCalcAso(hCtx, verifyOnly, &errorList, calcStruct); printf("EssPerformCustomCalcAso sts: %ld\n",sts); HandleErrors(hInst, &errorList); if(calcStruct) { sts = EssFree (hInst, calcStruct); printf("EssFree sts for allocStruct %ld\n",sts); } }