Starts the dimension build process.
This function must be called before EssEndStreamBuildDim(). After calling EssBeginStreamBuildDim(), call EssSendString() to send source records to Essbase server.
Syntax
ESS_FUNC_M EssBeginStreamBuildDim (hCtx, RulesObj, usBuildOption, szTmpOtlFilename)
| Parameter | Data Type | Description |
|---|---|---|
hCtx | ESS_HCTX_T | API context handle. |
RulesObj | ESS_POBJDEF_T | Pointer to rules file object definition structure. |
usBuildOption | ESS_USHORT_T | Valid values:
|
szTmpOtlFilename | ESS_STR_T | The temp outline file name. Essbasecreates a temporary outline file with extension "otb" if the resulting outline in this round of dimension build has outline verification errors. |
Notes
Unicode clients using the C Main API to communicate with Unicode-enabled Essbase applications must send the UTF-8 encoded Unicode byte order mark (BOM) in the text stream immediately after calling this function. For an example, see Specifying the Byte Order Encoding.
Return Value
Returns zero if successful; error code if unsuccessful.
Example
ESS_FUNC_M
ESS_IncBuildDim( ESS_HCTX_T hCtx)
{
ESS_STS_T sts = 0;
ESS_OBJDEF_T RulesObj;
ESS_OBJDEF_T DataObj;
ESS_STR_T ErrorName;
ESS_APPNAME_T appname;
ESS_DBNAME_T dbname;
memset(&RulesObj,0,sizeof(ESS_OBJDEF_T));
memset(&DataObj,0,sizeof(ESS_OBJDEF_T));
strcpy(appname, "sample");
strcpy(dbname,"basic");
RulesObj.hCtx = hCtx;
RulesObj.FileName = "genref";
RulesObj.AppName = appname;
RulesObj.DbName = dbname;
RulesObj.ObjType = ESS_OBJTYPE_RULES;
DataObj.hCtx = hCtx;
DataObj.FileName = "genref";
DataObj.AppName = appname;
DataObj.DbName = dbname;
DataObj.ObjType = ESS_OBJTYPE_TEXT;
ErrorName = "builddim.err";
sts = EssBeginIncrementalBuildDim(hCtx);
if (!sts)
sts = EssIncrementalBuildDim(hCtx,&RulesObj,&DataObj,NULL,ErrorName,true,ESS_INCDIMBUILD_BUILD,NULL);
if (!sts)
sts = EssIncrementalBuildDim(hCtx,&RulesObj,&DataOb,NULL,ErrorName,true,ESS_INCDIMBUILD_VERIFY,NULL);
if (!sts)
sts = EssIncrementalBuildDim(hCtx,&RulesObj,&DataOb,NULL,ErrorName,true,ESS_INCDIMBUILD_SAVEOTL,"tmpotl");
sts = EssBeginStreamBuildDim(hCtx, &RulesObj,ESS_INCDIMBUILD_BUILD,"tmpotl");
if (!sts)
sts = EssSendString(hCtx, "600 600-20 600-20-20\n");
if (!sts)
sts = EssSendString(hCtx, "600 600-20 600-20-30\n");
if (!sts)
sts = EssSendString(hCtx, "600 600-40 600-40-20\n");
sts = EssEndStreamBuildDim(hCtx,ErrorName,false);
sts = EssEndIncrementalBuildDim(hCtx,ESS_DOR_ALLDATA,"tmpotl",ErrorName,false);
return sts;
}
See Also