EssOtlSetDTSMemberAlias

動的時系列(Dynamic Time Series: DTS)メンバーの別名を設定します。

構文

            ESS_STS_T 
            EssOtlSetDTSMemberAlias
             (
            hOutline, pszDTSMember, pszAlias, pszAliasTable
            );
         
パラメータデータ型説明

hOutline

ESS_HOUTLINE_T

EssOtlOpenOutline呼出しから戻されるEssbaseアウトライン・ハンドル。

pszDTSMember

ESS_STR_T

別名を提供するDTSメンバー名。

pszAlias

ESS_STR_T

DTSメンバーの別名を含むC文字列を指すポインタ。

pzsAliasTable

ESS_STR_T

別名を提供する別名テーブルの名前。NULLの場合は、デフォルトの別名テーブルが使用されます。

戻り値

成功の場合、戻り値はゼロです。それ以外の場合は、次のいずれかの値が戻されます:

         #include "essapi.h"
#include "essotl.h"
#include "esserror.h"

ESS_STS_T ESS_OtlSetDTSMemberAlias(ESS_HCTX_T hCtx, ESS_HINST_T hInst) 
{ 
        ESS_STS_T       sts =ESS_STS_NOERR;
        ESS_OBJDEF_T    Object;
        ESS_HOUTLINE_T  hOutline;
        ESS_APPNAME_T   szAppName;
        ESS_DBNAME_T    szDbName;
        ESS_OBJNAME_T   szFileName;
        ESS_CHAR_T      pszAliasTable[ESS_ALIASNAMELEN];
        ESS_CHAR_T      pszAlias[ESS_ALIASNAMELEN];
        ESS_CHAR_T      pszDTSMember[ESS_MBRNAMELEN];
        ESS_PROCSTATE_T pState;
        ESS_ULONG_T     ulErrors;
        ESS_ULONG_T     ulCount;
        ESS_POUTERROR_T pMbrErrors = NULL;

        strcpy(szAppName, "sample");    
        strcpy(szDbName, "Basic");
        strcpy(szFileName, "Basic");
        strcpy(pszDTSMember, "Q-T-D"); 
        strcpy(pszAliasTable, "Default");
        strcpy(pszAlias, "QuarterToDate");

        memset(&Object, '\0', sizeof(ESS_OBJDEF_T));
        Object.hCtx = hCtx;
        Object.ObjType = ESS_OBJTYPE_OUTLINE;
        Object.AppName = szAppName;
        Object.DbName = szDbName;
        Object.FileName = szFileName;

        sts = EssOtlOpenOutline(hCtx, &Object, ESS_TRUE, ESS_TRUE, &hOutline);

        if(sts)
        {       
                printf("Could not open outline\n");
                return sts;
        }
        sts = EssOtlSetDTSMemberAlias(hOutline, pszDTSMember, pszAlias , pszAliasTable);
        if(sts)
        {       
                printf("Could not set DTS member alias. Error is %d\n", sts);
        }

        sts = EssOtlWriteOutline(hOutline, &Object);
        if(sts)
        {       
                printf("Could not write outline\n");
                return sts;
        }

        sts = EssOtlRestructure(hCtx, ESS_DOR_ALLDATA);
        if(sts)
        {       
                printf("Could not restructure outline\n");
                return sts;
        }

        memset (&pState, 0, sizeof(ESS_PROCSTATE_T));
        sts = EssGetProcessState(hCtx, &pState);
        {
                while ((sts == ESS_STS_NOERR ) && (pState.State != ESS_STATE_DONE))
                {       
                        memset (&pState, 0, sizeof(ESS_PROCSTATE_T));
                        sts = EssGetProcessState(hCtx, &pState);
                }
        }

        sts = EssUnlockObject(hCtx, ESS_OBJTYPE_OUTLINE, szAppName, szDbName, szFileName);
        if (sts)
        {       
                printf("Could not unlock outline\n");
                return sts;
        }

        EssOtlCloseOutline(hOutline);
        return sts;
}
      

関連トピック