Control Script API

The table below lists the objects that are the most important in Control Scripts. Click through to the object to find a description and sample scripts.
See Control Scripts for information about this kind of scripts, how to insert them and what you can do with them.

Other objects that are available to Control Scripts

The list below isn't exhaustive: most of the objects listed in the Designer API (see Standard Script API) are also available in Control Scripts. Not all of those objects can be used in Control Scripts, however. This is because Control Scripts differ from template scripts (see What Control Scripts are). For example, the query() function can't be used in a Control Script because it requires access to the DOM which a Control Script doesn't have.

Object Usage
channel (see Channel) The channel for which output is generated. This is registered in the merge object: merge.channel.Note that the channel doesn't change when the output consists of different contexts. When generating email, for example, the channel is EMAIL, even when merging the Print context to attach it to the email.
context Object that contains one context and its sections. It is accessed through the template object: merge.template.contexts. To get access to one context, you have to specify the ContextType (see ContextType), for example: var printContext = merge.template.contexts.PRINT;.
Through the merge object you can find out which context is currently being merged: merge.context.
masterpage The masterpage object is used to set a Master Page's header and footer or to replace its entire HTML body.
merge The merge object gives access to the template with all of its contexts and sections .

record

The current record in the main data set. To get the value of a field in the record, use record.fields['fieldname'] or record.fields.fieldname.

section Much of the Control Script magic is performed by setting one of the fields of the section object. Via the section object you can omit, select and clone sections; add a background to a Print section; add a header to an email; etc.
A section can be retrieved via the context that it belongs to, using merge.template.contexts.ContextType.sections["section name"]. For example: merge.template.contexts.PRINT.sections["Section EN"].
template The template object contains all contexts and sections. It is accessed through the merge object: merge.template.