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 a special handle. 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 else 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     OCCURS 10 TIMES
    05 MCTF-NAME             PIC X(16)       VALUE SPACES.
    05 MCTF-TYPE             PIC X(8)        VALUE SPACES
       88 MCTF-STRING                        VALUE 'STRING'.
    05 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(?)  =>
 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)