Codifique as instruções ESQL para acessar os campos do cabeçalho MQCFH (nome raiz MQPCF).
Mensagens com formato PCF (MQPCF, MQADMIN e MQEVENT) incluem o cabeçalho MQCFH. É possível processar o conteúdo do cabeçalho MQCFH, acessando parâmetros, listas de parâmetros, cadeias e grupos.
É possível implementar seu próprio campo ParameterCount com um valor específico, mas esse valor será sobrescrito pelo número real de parâmetros na saída do fluxo.
SET OutputRoot.MQPCF.Parameter[nn] =
ID do Parâmetro de Inteiro
Se você acessar um parâmetro de 64 bits, utilize a seguinte sintaxe para diferenciar dos parâmetros de 32 bits:SET OutputRoot.MQPCF.Parameter64[nn] =
ID do Parâmetro de Inteiro
Por
Exemplo:SET OutputRoot.MQPCF.Parameter[1] =
MQCACF_AUTH_PROFILE_NAME;
SET OutputRoot.MQPCF.ParameterList64[nn] =
ID do Parâmetro Integer
SET OutputRoot.MQPCF.ParameterList64[nn].*[xx] =
Valores de Parâmetro Integer
Por
Exemplo:SET OutputRoot.MQPCF.ParameterList[1] =
MQIACF_AUTH_ADD_AUTHS;
SET OutputRoot.MQPCF.ParameterList[1].*[1] =
MQAUTH_SET;
SET OutputRoot.MQPCF.ParameterList[1].*[2] =
MQAUTH_SET_ALL_CONTEXT;
SET OutputRoot.MQPCF.Parameter[nn] =
ID do Parâmetro Integer
SET OutputRoot.MQPCF.Parameter[nn].* =
Valor de Parâmetro Integer, String ou ByteArray
SET OutputRoot.MQPCF.Group[xx] =
ID do Parâmetro Group
Por
Exemplo:SET OutputRoot.MQPCF.Group[1] =
MQGACF_Q_ACCOUNTING_DATA;
SET OutputRoot.MQPCF.Group[1].Parameter[1] =
MQCA_CREATION_DATE;
SET OutputRoot.MQPCF.Group[1].Parameter[1].* =
'2007-02-05';
Também é possível utilizar grupos aninhados, por exemplo:SET OutputRoot.MQPCF.Group[1].Group[1] =
MQGACF_Q_ACCOUNTING_DATA;
SET OutputRoot.MQPCF.Group[1].Group[1].Parameter[1] =
MQCA_CREATION_DATE;
SET OutputRoot.MQPCF.Group[1].Group[1].Parameter[1].* =
'2007-02-05';
SET OutputRoot.MQPCF.Filter[xx] =
ID do Parâmetro Integer
SET OutputRoot.MQPCF.Filter[xx].Operator =
Nome do Filtro Integer
SET OutputRoot.MQPCF.Filter[xx].Value =
Valor de Filtro Byte, Integer ou String
CREATE NEXTSIBLING OF OutputRoot.Properties DOMAIN 'MQMD';
CREATE NEXTSIBLING OF OutputRoot.MQMD DOMAIN 'MQADMIN'
NAME 'MQPCF';
CREATE FIELD OutputRoot.MQPCF;
SET OutputRoot.MQMD.MsgType = MQMT_REQUEST;
SET OutputRoot.MQMD.ReplyToQ = 'REPLYQ';
DECLARE refRequest REFERENCE TO OutputRoot.MQPCF;
SET refRequest.Type = 16; --MQCFT_COMMAND_XR z/OS
SET refRequest.StrucLength = MQCFH_STRUC_LENGTH;
SET refRequest.Version = 3; -- required for z/OS
SET refRequest.Command = MQCMD_INQUIRE_Q;
SET refRequest.MsgSeqNumber = 1;
SET refRequest.Control = MQCFC_LAST;
/* First parameter: Queue Name. */
SET refRequest.Parameter[1] = MQCA_Q_NAME;
SET refRequest.Parameter[1].* = 'QUEUENAME.*';
SET refRequest.ParameterList[1] = MQIACF_Q_ATTRS;
SET refRequest.ParameterList[1].* = MQIACF_ALL;