MQCFIF - PCF integer filter parameter

The MQCFIF structure describes an integer filter parameter. The format name in the message descriptor is MQFMT_ADMIN.

The MQCFIF structure is used in Inquire commands to provide a filter condition. This filter condition is used to filter the results of the Inquire command and return to the user only those objects that satisfy the filter condition.

When an MQCFIF structure is present, the Version field in the MQCFH structure at the start of the PCF must be MQCFH_VERSION_3 or higher.

On z/OS®, a single filter parameter only is allowed. If multiple MQCFIF, MQCFSF and MQCFBF, or MQCFBF parameters are specified, the PCF command fails with error MQRCCF_TOO_MANY_FILTERS (MQRCCF 3248).


Fields for MQCFIF

    Type (MQLONG)
    Structure type. This indicates that the structure is an MQCFIF structure describing an integer filter parameter. The value must be:

      MQCFT_INTEGER_FILTER
      Structure defining an integer filter.

    StrucLength (MQLONG)
    Structure length. This is the length in bytes of the MQCFIF structure. The value must be:

      MQCFIF_STRUC_LENGTH
      Length of command format integer-parameter structure.

    Parameter (MQLONG)
    Parameter identifier.

    This identifies the parameter that is to be filtered on. The value of this identifier depends on the parameter to be filtered on. Any of the parameters which can be used in the Inquire command can be used in this field.

    The parameter is from the following groups of parameters:

    • MQIA_*
    • MQIACF_*
    • MQIAMO_*
    • MQIACH_*

    Operator (MQLONG)
    Operator identifier.

    This identifies the operator that is being used to evaluate whether the parameter satisfies the filter-value.

    Possible values are:

      MQCFOP_GREATER
      Greater than

      MQCFOP_LESS
      Less than

      MQCFOP_EQUAL
      Equal to

      MQCFOP_NOT_EQUAL
      Not equal to

      MQCFOP_NOT_LESS
      Greater than or equal to

      MQCFOP_NOT_GREATER
      Less than or equal to

      MQCFOP_CONTAINS
      Contains a specified value. Use MQCFOP_CONTAINS when filtering on lists of values or integers.

      MQCFOP_EXCLUDES
      Does not contain a specified value. Use MQCFOP_EXCLUDES when filtering on lists of values or integers.

    See the FilterValue description for details telling you which operators can be used in which circumstances.

    FilterValue (MQLONG)
    Filter value identifier.

    This specifies the filter-value that must be satisfied.

    Depending on the parameter, the value and the permitted operators can be:

    • An explicit integer value, if the parameter takes a single integer value. We can only use the following operators:

      • MQCFOP_GREATER
      • MQCFOP_LESS
      • MQCFOP_EQUAL
      • MQCFOP_NOT_EQUAL
      • MQCFOP_NOT_GREATER
      • MQCFOP_NOT_LESS
    • An MQ constant, if the parameter takes a single value from a possible set of values (for example, the value MQCHT_SENDER on the ChannelType parameter). We can only use MQCFOP_EQUAL or MQCFOP_NOT_EQUAL.
    • An explicit value or an MQ constant, as the case might be, if the parameter takes a list of values. We can use either MQCFOP_CONTAINS or MQCFOP_EXCLUDES. For example, if the value 6 is specified with the operator MQCFOP_CONTAINS, all items where one of the parameter values is 6 are listed.

    For example, if you need to filter on queues that are enabled for put operations in your Inquire Queue command, the parameter would be MQIA_INHIBIT_PUT and the filter-value would be MQQA_PUT_ALLOWED.

    The filter value must be a valid value for the parameter being tested.


C language declaration

typedef struct tagMQCFIF {
  MQLONG  Type;         /* Structure type */
  MQLONG  StrucLength;  /* Structure length */
  MQLONG  Parameter;    /* Parameter identifier */
  MQLONG  Operator;     /* Operator identifier */
  MQLONG  FilterValue;  /* Filter value */
 } MQCFIF;


COBOL language declaration

**   MQCFIF structure
  10 MQCFIF.
**    Structure type
   15 MQCFIF-TYPE        PIC S9(9) BINARY.
**    Structure length
   15 MQCFIF-STRUCLENGTH PIC S9(9) BINARY.
**    Parameter identifier
   15 MQCFIF-PARAMETER   PIC S9(9) BINARY.
**    Operator identifier
   15 MQCFIF-OPERATOR    PIC S9(9) BINARY.
**    Filter value
   15 MQCFIF-FILTERVALUE PIC S9(9) BINARY.


PL/I language declaration ( z/OS only)

dcl
 1 MQCFIF based,
  3 Type        fixed bin(31), /* Structure type */
  3 StrucLength fixed bin(31), /* Structure length */
  3 Parameter   fixed bin(31), /* Parameter identifier */
  3 Operator    fixed bin(31)  /* Operator identifier */ 
  3 FilterValue fixed bin(31); /* Filter value */


System/390 assembler-language declaration ( z/OS only)

MQCFIF                         DSECT
MQCFIF_TYPE                    DS   F        Structure type
MQCFIF_STRUCLENGTH             DS   F        Structure length
MQCFIF_PARAMETER               DS   F        Parameter identifier
MQCFIF_OPERATOR                DS   F        Operator identifier
MQCFIF_FILTERVALUE             DS   F        Filter value
MQCFIF_LENGTH                  EQU  *-MQCFIF Length of structure
                               ORG  MQCFIF
MQCFIF_AREA                    DS   CL(MQCFIF_LENGTH)


Visual Basic language declaration ( Windows only)

Type MQCFIF
  Type As Long         ' Structure type
  StrucLength As Long  ' Structure length
  Parameter As Long    ' Parameter identifier
  Operator As Long     ' Operator identifier
  FilterValue As Long  ' Filter value
End Type

Global MQCFIF_DEFAULT As MQCFIF


RPG language declaration ( IBM® i only)

D* MQCFIF Structure
D*
D* Structure type
D  FIFTYP                  1      4I 0 INZ(3)
D* Structure length
D  FIFLEN                  5      8I 0 INZ(16)
D* Parameter identifier
D  FIFPRM                  9     12I 0 INZ(0)
D* Operator identifier
D  FIFOP                  13     16I 0 INZ(0)
D* Condition identifier
D  FIFFV                  17     20I 0 INZ(0) 
D*