# EssOtlWriteOutline

Description

EssOtlWriteOutline() writes the existing outline information to disk.

Syntax

    ESS_FUNC_M EssOtlWriteOutline (hOutline, pObject);

ESS_HOUTLINE_T | hOutline
ESS_POBJDEF_T | pObject

Parameters

hOutline | Outline context handle.
pObject | Outline object to write.

Return Value

Returns 0 if successful; otherwise one of the following:

OTLAPI_BAD_OBJTYPE
OTLAPI_ERR_NOTVERIFIED

Notes

- If you are saving the outline as a server object, the outline is initially saved as a .OTN file. You should then call EssOtlRestructure() to create the actual .OTL file.
- If you are saving the outline as a server object, the object name must be the same as the database name.
- The database must already exist if you are saving a server outline object, or a client outline object to a local database.
- This call fails if the outline is not currently locked by the specified user (hCtx parameter in the ESS_OBJDEF_T structure).

Access

This function requires you to have the appropriate level of access to the specified application and/or database to contain the outline object. To write the outline object, you must have Application Designer or Database Designer privilege (ESS_PRIV_APPDESIGN or ESS_PRIV_DBDESIGN) for the specified application or database containing the outline.

Example

    #include <essapi.h>
    #include <essotl.h>

    ESS_STS_T          sts = 0;
    ESS_HOUTLINE_T     hOutline;
    ESS_OBJDEF_T       Object;
    ESS_APPNAME_T      szAppName;
    ESS_DBNAME_T       szDbName;
    ESS_OBJNAME_T      szFileName;

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

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

    /* body of code */
    if (!sts)
    {
       sts = EssOtlWriteOutline(hOutline, &Object);
    }

    /* restructure db using EssOtlRestructure() */

See Also

EssOtlOpenOutline()
EssOtlNewOutline()
EssOtlVerifyOutline()
EssOtlRestructure()
EssOtlCloseOutline()