EssBeginStreamBuildDim

次元構築プロセスを開始します。

この関数はEssEndStreamBuildDimの前に呼び出す必要があります。この関数を呼び出した後、EssSendStringを呼び出してソース・レコードをEssbaseサーバーに送信します。

構文

            ESS_FUNC_M EssBeginStreamBuildDim (
            hCtx, RulesObj, usBuildOption, szTmpOtlFilename
            )

         
パラメータデータ型説明

hCtx

ESS_HCTX_T

APIコンテキスト・ハンドル。

RulesObj

ESS_POBJDEF_T

ルール・ファイル・オブジェクト定義構造体へのポインタ。

usBuildOption

ESS_USHORT_T

有効な値:

  • ESS_INCDIMBUILD_BUILD

    メンバーの構築のみ行います。

  • ESS_INCDIMBUILD_VERIFY

    メンバーを構築してアウトラインを確認します。

  • ESS_INCDIMBUILD_SAVEOTL

    メンバーを構築して、アウトラインを一時アウトライン・ファイルに保存します。

  • ESS_INCDIMBUILD_ALL

    メンバーを構築し、アウトラインを確認し、再構築します。

szTmpOtlFilename

ESS_STR_T

一時アウトライン・ファイル名。この回の次元構築で得られたアウトラインにアウトライン確認エラーがある場合、Essbaseは拡張子がotbの一時アウトライン・ファイルを作成します。

備考

Unicode対応Essbaseアプリケーションとの通信にCのメインAPIを使用するUnicodeクライアントは、この関数の呼出し直後に、テキスト・ストリーム内のUTF-8でエンコードされたバイト・オーダー・マーク(BOM)を送信する必要があります。例としては、バイト・オーダー・エンコーディングの指定を参照してください。

戻り値

正常終了の場合は0が戻され、失敗した場合はエラー・コードが戻されます。

         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;
}

      

関連トピック