# Trigger Service

You can prepare a trigger service without conversion rules. This allows your CICS application to put multiple containers using a CICS channel, and requires Substation ES Trigger Service to publish them as one message. This allows more flexibility in the design and usage of your program.

The trigger service must meet the following qualifications:

- The message type is Rendezvous or EMS:
  - For EMS message types, only MAP messages are supported.
  - For EMS message types, EMS properties cannot be used as data. EMS properties can only be used for Substation ES system fields, such as `tibss-*`.
- No conversion rules are used.

Each container name becomes a message field name, and the context of the container becomes the data of the field in opaque or bytes data type. Note that string data types require special handling. Refer to the following String Data Types section.

If you must use a system field, it can be defined in the EMS Properties panel. For details of supported fields, see "Using System Fields as Property Fields" in the TIBCO Substation ES Configuration and Resources guide.

## String Data Types

If you want to send container data as STRING data type of field, your application has to:

- For COBOL, use the copybook member `SXCCMCTF` to nominate the containers that will be something other than an opaque field when the message is finally built.
- Move the container name to `MCTF-NAME` and set `MCTF-TYPE` to `STRING`.
  Note: If the message field to be created is opaque, then the entry does not have to be placed into this structure.
- Change the number of `MCTF-GROUP` occurrences if the supplied number is not sufficient. The default for special non-opaque fields is set to 10.
- Add a container named `tibss-TypeF` to the CICS channel containing this structure as the input to it.

Substation ES sends the fields in `MCTF-GROUP` to the message as the STRING fields. The following example shows the structure of the copybook member `SXCCMCTF`:

    01  MCTF-HEADER-LEN-FW        PIC S9(8)  COMP VALUE 320.
    01  MCTF-CONTAINER-NAME       PIC  X(16) VALUE 'tibss-TypeF'.

    01  MCTF-GROUP.
        05  MCTF-GRP              OCCURS 10  TIMES.
            10  MCTF-NAME         PIC  X(16) VALUE SPACES.
            10  MCTF-TYPE         PIC  X(8)  VALUE SPACES.
                88  MCTF-STRING              VALUE 'STRING'.
            10  FILLER            PIC  X(8)  VALUE SPACES.

## Replace Config File Subjects

You can replace the `Publish To` and `Reply To` destination or subject names that are defined in the config file. The following two special containers are optional:

- `tibss-SendTo`: a value specified in the container replaces the trigger definition value for `Publish To` specified in the service definition during run time.
- `tibss-ReplyTo`: a value specified in the container replaces the trigger definition value for `Reply To` specified in the service definition during run time.

Note: These two special containers do not become user fields.

## Business Process Example

The process to use a trigger service with multiple containers is listed as follows:

1. Create the business data containers required for a channel.
2. Create a container named `SXCQWRIT` with the link function require parameters information from the copybook `SXCCTDQW`.

   Make sure that the field service name has a valid value and includes other fields properly filled in.

3. Set the TDQW-CONTAINER field of the copybook `SXCCTDQW` to 2.
4. Optionally, the business process can create a container whose name is `tibss-SendTo` and whose content is the destination that the `SendTo` message should be published to.
5. Optionally, the business process can create a container whose name is `tibss-ReplyTo` and whose content is the destination name that the `ReplyTo` message is sent to.
6. Create a channel link to `SXCQWRIT`.

An example of this process can be found in `USERHLQ.COB`(`SXCCI032`).

The following example demonstrates how to set up a trigger service without a conversion rule:

    -------------------------- Trigger Details -------------------------------
    Command ===>                                                (EMS,PROP)

     Trigger Identifier    => TRIGGER-NO-RULES
     Publish To            => tibss.trigger.no.rules
     Publish To, Sec       =>
     Reply To              => tibss.trigger.no.rules.reply
     Error Subject         => tibss.error.out
     Error Threshold       => 0    (0 - 99999)   Error Percent => 0 (0 - 99)
     Publish To Len (Dyn)  => 0    Start => 0
     Output Conversion(?)  =>                   Msg Field Name => q
     ESB Endpoint     (?)  => EMS-SERVER
     Trace Level           => 0  0-5
     Output Method         => 2  1 Status 2 Message
                                 3 Both Status and Message
     Compare Text Contain in Buffer
       Start  => 0
       Length => 0
       Value  =>
     Undelivered Requeue   => N   (Y Requeue, N Discard - Reliable Only)

Copyright © TIBCO Software Inc. All rights reserved.