EssImportASO

Allows importing data from different sources to an Essbase aggregate storage database.

Syntax

ESS_FUNC_M EssImportASO (hCtx, pRules, pData, ppMbrErr, pUser, usabortOnError, ulBufferId);
ParameterData TypeDescription

hCtx

ESS_HCTX_T

API context handle.

pRules

ESS_OBJDEF_T

Pointer to the rules file object definition structure.

pData

ESS_OBJDEF_T

Pointer to the data file object definition structure.

ppMbrErr

ESS_MBRERR_T

Pointer to linked list of errors contained in ESS_MBRERR_T. Possible errors are:

  • ESS_MBRERR_BADDIM

  • ESS_MBRERR_BADGEN

  • ESS_MBRERR_UNKNOWN

  • ESS_MBRERR_BADACCESS

  • ESS_MBRERR_BADSYNTAX

pUser

ESS_MBRUSER_T

Pointer to the SQL user structure (if data source is a SQL database). A NULL SQL user structure indicates a non SQL data source.

usabortOnError

ESS_USHORT_T

If TRUE, import stops on the first error. Oherwise, it continues.

ulBufferId

ESS_ULONG_T

ID of a data load buffer (a number between 1 and 999,999). To destroy a buffer before a data load is complete, you must use the same ulBufferId number that was used to initialize the buffer.

Notes

Return Value

Returns zero if successful; otherwise, returns an error code.

Access

This function requires the caller to have database designer privilege for the specified database (ESS_PRIV_DBDESIGN).

Example

void TestImportASO(ESS_HCTX_T hCtx, ESS_STR_T AppName, ESS_STR_T DbName)
{
        ESS_STS_T       sts = ESS_STS_NOERR;
        ESS_SHORT_T     isAbortOnError;
        ESS_OBJDEF_T    Rules;
        ESS_OBJDEF_T    Data;
        ESS_PMBRERR_T   pMbrErr = NULL;
        ESS_PMBRUSER_T  pMbrUser = NULL;
        ESS_ULONG_T ulBufferId;
        ESS_ULONG_T     ulDuplicateAggregationMethod;
        ESS_ULONG_T     ulOptionsFlags;
        ESS_ULONG_T     ulSize;
        ESS_ULONG_T     ulBufferCnt;
        ESS_ULONG_T     ulCommitType ;
        ESS_ULONG_T     ulActionType;
        ESS_ULONG_T     ulOptions;
        ESS_ULONG_T ulBufferIdAry[1];

        ulDuplicateAggregationMethod = ESS_ASO_DATA_LOAD_BUFFER_DUPLICATES_ADD;
        ulOptionsFlags = ESS_ASO_DATA_LOAD_BUFFER_IGNORE_MISSING_VALUES;
        ulSize = 100;
        ulBufferId = 10;
        sts = EssLoadBufferInit(hCtx, AppName, DbName, ulBufferId,          ulDuplicateAggregationMethod, ulOptionsFlags, ulSize);
        printf("EssLoadBufferInit sts: %ld\n", sts);

        /* Server object */
        Rules.hCtx     = hCtx;
        Rules.AppName  = AppName;
        Rules.DbName   = DbName;
        Rules.ObjType  = ESS_OBJTYPE_RULES;
        Rules.FileName = "Dataload";
        Data.hCtx      = hCtx;
        Data.AppName   = AppName;
        Data.DbName    = DbName;
        Data.ObjType   = ESS_OBJTYPE_TEXT;
        Data.FileName  = "Dataload";
        isAbortOnError = ESS_TRUE; 

        sts = EssImportASO (hCtx, &Rules, &Data, &pMbrErr, pMbrUser,          isAbortOnError, ulBufferId);
        printf("EssImportASO sts: %ld\n",sts);
        if(pMbrErr)
              EssFreeMbrErr(hCtx, pMbrErr);

        /* Commit and delete the buffer */
        ulBufferCnt = 1;
        ulBufferIdAry[0] = ulBufferId;
        ulCommitType = ESS_ASO_DATA_LOAD_BUFFER_STORE_DATA;
        ulActionType = ESS_ASO_DATA_LOAD_BUFFER_COMMIT;
        printf("\nCommit data to the main slice:\n");
        ulOptions = ESS_ASO_DATA_LOAD_INCR_TO_MAIN_SLICE;
        sts = EssLoadBufferTerm(hCtx, AppName, DbName, ulBufferCnt,          ulBufferIdAry, ulCommitType, ulActionType, ulOptions);
        printf("EssLoadBufferTerm sts: %ld\n",sts);
}

See Also