Several functions support a query interface to the outline API such that the outline does not need to be downloaded from the server and completely read into memory. These Outline API functions support only server outlines. Prior to opening the outline, the user must log in to a server, setting up a valid Essbase login context.
Error handling for these functions is done via the standard API error handling mechanism. Therefore, any message callback that the caller has specified from EsxInit() is called on errors.
Here's the way it works:
The programmer initializes the API as always by calling EsxInit() and EsxLogin().
The programmer calls EsxOtlOpenOutlineQuery() to "open" the outline from the server and bring back some initial information. The information brought back from the server is all information in the ESX_OUTLINEINFO_T structure and for each dimension, all relevant information in the ESX_OTLMBR_T internal structure, which includes the ESX_MBRINFO_T structure.
The caller needs to get information about members, so he calls EsxOtlQueryMembers() with the appropriate flags to get an array of member handles back. The EsxOtlQueryMembers() call returns all relevent information in the ESX_OTLMBR_T internal structure. The user can then call any of the EsxOtlGetXxxx() calls that relate to a specific member by passing in one of the returned member handles. See the comments section in the EsxOtlQueryMembers() call for more information about which calls are supported when the outline is opened in "query" mode.
When the caller is done with the data returned from an EsxOtlQueryMembers() call, he should call EssOtlFreeMembers() or EsbOtlFreeMember() to free the array of members.
The caller should call EsxOtlCloseOutline() when complete to clean up internal data structures.
The caller terminates the API as always by calling EsxLogout() and EsxTerm().