Siebel Communications Server Administration Guide > Configuring Events and Commands > Commands >
Hierarchical Commands (Commands and Subcommands)
Communications commands can be defined in hierarchical fashion; you can define group commands that contain subcommands. These subcommands are invoked when the group command is invoked. Grouping or nesting commands using subcommands helps to define the communications user interface in the Siebel application.
For information about specifying subcommands, see Defining Communications Commands. For more information about how command groups are used in configuring the communications toolbar and menus, see Configuring User Interface Elements.
When you specify subcommands within group commands, note the following:
- Commands can have subcommands. A command containing subcommands is sometimes referred to as a group command.
- Do not define invalid recursive subcommand relationships, such as making a subcommand include its parent group command as a subcommand.
- The Subcommands list in the All Commands view specifies the order in which commands are executed. Alternatively, if the command parameter ExecuteAll is set to TRUE, then all subcommands can execute. As with any command, subcommands can execute only when they are enabled. Subcommands that are disabled are skipped and not executed.
- If a subcommand fails when executing, then the remaining subcommands are not executed. However, if the command parameter ExecUntilOK is set to TRUE, then the remaining subcommands are executed until one of them succeeds.
- Subcommands and their order are represented in .DEF files you export by using the command parameter SubCommand_N, where N is the order value for each subcommand.
- At runtime, commands that invoke device commands are enabled or disabled based in part on the status of the device command. For more information, see SCCommandFlag and CacheCommandInformation.
- At runtime, commands that invoke business service methods rather than device commands are determined to be enabled or disabled by invoking from the applicable business service the method CanInvokeMethod("method_name"), where method_name is your business service method to be invoked. If TRUE is returned, the method can be invoked. If FALSE is returned, the method cannot be invoked and the command is disabled.
- Several command parameters are used to determine whether a group command or subcommand matches and can be executed. Such command parameters include AllViews, CmdChannelOnFocus, FilterSpec, OnEditControl, and View.
- Several command data parameters are also used to determine whether a group command or subcommand matches and can be executed. Such command data parameters include BusComp, BusObj, Filter, and RequiredField.
- Commands specifying subcommands cannot also specify a device command or business service method.
- If you require a command that executes both a device command and a business service method, define a group command where ExecuteAll is TRUE and where two subcommands are specified. Define one subcommand to execute a device command, such as a make-call command, and define the other subcommand to invoke your business service method. If you need command data parameters, create command data definitions and associate them with the subcommands.
- In some cases, a group command should not have command data associated with it. If a group command is at the top-level (is not itself a subcommand), or if a group command is also a subcommand and ExecuteAll is set to TRUE for its parent group command, then command data may be associated. However, in the latter case, if ExecuteAll is not set to TRUE for the parent group command, then do not associate command data with the child group command.
- The command parameter SelectApplet (and related parameters such as SelectBusObj, SelectBusComp, SelectView, and so on) can be used to display a dialog box that pertains to all subcommands in a group command, where ExecuteAll is TRUE. To configure this, you must define these parameters in the top-level command and not in the individual subcommands. The dialog box will apply to all subcommands.