Compacts an outline file that requires compacting at the server side.
Syntax
ESS_FUNC_M EssCompactOutline (hCtx);
Parameter | Data Type | Description |
---|---|---|
hCtx | ESS_HCTX_T | API context acquired during login |
Notes
The function requires that the user is set active.
Return Value
Returns 0 if successful. After verifying that no users are performing an action, an outline-only restructure is performed.
Example
#include <windows.h> #include <string.h> #include <stdio.h> #include <stdlib.h> #pragma pack(push, api, 1) #include <essapi.h> #include <essotl.h> #pragma pack(pop, api) /* default names */ ESS_SVRNAME_T srvrName = "localhost"; ESS_USERNAME_T userName = "essexer"; ESS_PASSWORD_T pswd = "password"; ESS_APPNAME_T app = "ASOSamp"; ESS_DBNAME_T db = "Sample"; int main(int argc, char *argv[ ]) { ESS_STS_T sts = ESS_STS_NOERR; ESS_HINST_T hInst = NULL; ESS_HOUTLINE_T hOutlineQuery = NULL, hOutline = NULL; ESS_HCTX_T hCtx = NULL; ESS_USHORT_T Items; ESS_PAPPDB_T pAppsDbs = NULL; ESS_ACCESS_T Access; ESS_INIT_T InitStruct = /* Define init */ /* structure */ { ESS_API_VERSION, /* Version of API */ (ESS_PVOID_T)0, /* user-defined message context */ 0, /* max handles */ 0L, /* max buffer size */ NULL, //(ESS_STR_T)"C:\\Hyperion\\products\\Essbase\\EssbaseServer", /* local path */ /* The following parameters use defaults */ NULL, /* message db path */ NULL, /* allocation function pointer */ NULL, /* reallocation function pointer */ NULL, /* free function pointer */ NULL, //(ESS_PFUNC_T)MessageFunc, /* error handling function pointer */ NULL, /* path name of user-defined */ /* Application help file */ 0L /* Reserved for internal use. */ /* Set to NULL */ #ifdef AD_UTF8 , ESS_API_UTF8 #endif }; /* get appname and dbname from the argument list */ if (argc < 6) { puts(" Usage: EssCompactOtl ServerName Userid Password AppName DbName\n"); exit (0); } strcpy(srvrName, argv[1]); strcpy(userName, argv[2]); strcpy(pswd, argv[3]); strcpy(app, argv[4]); strcpy(db, argv[5]); /* Initialize the Essbase API */ if ((sts = EssInit(&InitStruct, &hInst)) != ESS_STS_NOERR) { printf("EssInit failure: %ld\n", sts); exit ((int) sts); } /* Login to Essbase */ if ((sts = EssLogin (hInst, srvrName, userName, pswd, &Items, &pAppsDbs, &hCtx)) != ESS_STS_NOERR) { printf("EssLogin failure: %ld\n", sts); exit ((int) sts); } if(pAppsDbs) EssFree(hInst, pAppsDbs); /* Select the application */ if ((sts = EssSetActive(hCtx, app, db, &Access)) != ESS_STS_NOERR) { printf("EssSetActive failure: %ld\n", sts); exit ((int) sts); } /* compact the outline and restructure */ if ((sts = EssCompactOutline(hCtx)) != ESS_STS_NOERR) { printf("EssCompactOutline failure: %ld\n", sts); exit ((int) sts); } /* done, logout and terminate the api */ if ((sts = EssLogout (hCtx)) != ESS_STS_NOERR) { printf("EssLogout failure: %ld\n", sts); exit ((int) sts); } if ((sts = EssTerm(hInst)) != ESS_STS_NOERR) { /* error terminating API */ exit((int) sts); } return(0); }