SELECTION_INPUT and SELECTION_OUTPUT maps

You can use the keyword SELECTION_OUTPUT as input to the keyword SELECTION_INPUT in another WIZARD to reproduce a default state for the Content Wizard (for more information, see MAP).

The map contains keys that consist of a sequence of Section titles separated by backslashes. The sequence can optionally be followed by a Text Block title. For a Content Wizard containing Section "a" and Subsection "b" with Text Block "tb1," Subsection "b" may be presented by "a\b" and Text Block "tb1" may be presented by "a\b\tb1." Each key has a value indicating the selection state. These values are:

  • MS indicates Mandatory Selected.
  • OS indicates Optional Selected.
  • OD indicates Optional Deselected.

Input that may alter Mandatory Sections or Text Blocks as defined in the Content Wizard Editor is ignored.

Input that sets Optional Sections or Text Blocks to MS is handled as if they are set to OS.

If no input is provided for a Section or Text Block, the definition as entered in the Content Wizard Editor is maintained.

Incorrect input is ignored:

  • Sections or Text Blocks that do not exist in the Content Wizard Editor;
  • Sections or Text Blocks that may result in multiple selections in a single select situation.

The SELECTION_INPUT and SELECTION_OUTPUT maps cannot differentiate between multiple identical items in the same section. A Content Wizard always writes the MS value into the SELECTION_OUTPUT map if one of the objects was MS. Otherwise, if at least one of the objects was selected, it writes the OS value. If none of the objects is selected, the OD value is used.

# BEGIN

WIZARD "myID"
  NAME "my wizard"

FOREACH WIZARD Element IN WIZARD "myID"
DO
  IF Element.Type = "section" THEN

#
Wizard @(Element.Wizard) [@(Element.WizardQForm)]
Section @(Element.Name) [@(Element.QForm)]
#
  ELIF Element.Type = "textblock" THEN
    TEXTBLOCK VAR Element.TextBlock
  FI
  
    FOREACH WIZARD SubElement IN Element
    DO
      IF SubElement.Type = "section" THEN

#
SubSection @(SubElement.Name) [@(SubElement.QForm)]
#
      ELIF SubElement.Type = "textblock" THEN
        TEXTBLOCK VAR SubElement.TextBlock
      FI
    OD
OD

END #