The database outline can be navigated and modified, using the outline API functions. These functions allow movement through the outline hierarchy, modification of member information and properties, addition and deletion of members, and so on.
Control Flow of the Outline API Functions
To begin using an outline, call EsxOtlOpenOutline(). If you intend to edit the outline, you should set both of the fLock and fKeepTrans arguments passed to EsxOtlOpenOutline() to TRUE. The fLock flag locks the outline to prevent anyone else from updating it (but not from viewing it). The fKeepTrans flag saves all transactions performed during the edit of the outline, for when the outline is subsequently restructured.
To start navigating the outline from the first dimension member, call EsxOtlGetFirstMember(). Alternately, you can locate a member by name by using EsxOtlFindMember() or EsxOtlFindAlias(). In either case, the function returns a member handle that can then be used to get or set information about that member or to get the member handles of adjacent members in the outline hierarchy.
To get information about the current member, use EsxOtlGetMemberInfo(), EsxOtlGetMemberAlias() and EsxOtlGetMemberFormula(). To set information for the current member, use the corresponding Set functions.
To get the parent of a member, call EsxOtlGetParent(). To get the first child of a member, call EsxOtlGetChild(). To get the siblings of a member, call EsxOtlGetNextSibling() or the EsxOtlGetPrevSibling(). To locate the next shared occurrence of a member, call EsxOtlGetNextSharedMember().
To add or delete dimensions in an outline, use EsxOtlAddDimension() or EsxOtlDeleteDimension().
To modify members in the outline hierarchy, use EsxOtlAddMember(), EsxOtlDeleteMember(), or EsxOtlMoveMember().
After an outline is modified, it can be verified using EsxOtlVerifyOutline(), saved using EsxOtlWriteOutline(), and then closed using EsxOtlCloseOutline().
Before any changes made to a server outline can take effect, the database must be restructured by calling EsxOtlRestructure(). This function applies the edits made to the outline against the old version of the outline and restructures both the outline and the associated data.
For detailed descriptions of these functions see EssOtlOpenOutline, EssOtlGetMemberInfo, EsbOtlOpenOutline, EsbOtlGetMemberInfo and each function's associated See Also lists.