FINDMEM: Como Localizar um Membro de um Conjunto de Dados Particionado

Como:

Sistemas Operacional Disponíveis: z/OS

Linguagens Disponíveis: Reporting, Maintain

A função FINDMEM, disponível apenas em z/OS, determina se um membro específico de um conjunto de dados particionado (PDS) existe. Esta função é utilizada principalmente em procedimentos do Gerenciador de Diálogos.

Para utilizar esta função, é necessário alocar o PDS em um ddname, pois o ddname é obrigatório para chamar a função. É possível pesquisar diversos PDSs com uma chamada de função caso eles estejam concatenados em um ddname.


Topo da página

x
Sintaxe: Como Localizar um membro de um conjunto de dados particionado
FINDMEM(ddname, member, output)

onde:

ddname

A8

É o ddname no qual o PDS está alocado. Este valor deve ser um literal de oito caracteres entre aspas simples ou uma variável que contém o ddname. Se você fornecer um literal com menos de oito caracteres, preencha os espaços vazios com espaços à direita.

member

A8

É o membro pelo qual você está procurando. Este valor deve possuir oito caracteres. Se você fornecer um literal com menos de oito caracteres, preencha os espaços vazios com espaços à direita.

saída

A1

É o nome do campo que contém o resultado ou o formato do valor de saída posto entre aspas simples. O resultado é um dos seguintes:

Y indica que o membro existe no PDS.

N indica que o membro não existe no PDS.

E indica a ocorrência de um erro. O conjunto de dados não está alocado para o ddname ou o conjunto alocado para o ddname não é um PDS (e pode ser um arquivo sequencial).



Exemplo: Como Localizar um Membro de um Conjunto de Dados Particionado

FINDMEM procura o Arquivo Master EMPLOYEE no PDS alocado para o ddname MASTER, e exibe o resultado para a variável &FINDCODE. O resultado possui o formato A1:

-SET &FINDCODE = FINDMEM('MASTER  ', 'EMPLOYEE', 'A1');-IF &FINDCODE EQ 'N' GOTO NOMEM;
-IF &FINDCODE EQ 'E' GOTO NOPDS;
-TYPE MEMBER EXISTS, RETURN CODE = &FINDCODE
TABLE FILE EMPLOYEE
PRINT CURR_SAL BY LAST_NAME BY FIRST_NAME
WHERE RECORDLIMIT EQ 4;
END
-EXIT
-NOMEM
-TYPE EMPLOYEE NOT FOUND IN MASTER FILE PDS
-EXIT
-NOPDS
-TYPE ERROR OCCURRED IN SEARCH
-TYPE CHECK IF FILE IS A PDS ALLOCATED TO DDNAME MASTER
-EXIT

A saída é:

LAST_NAME  
FIRST_NAME  
CURR_SAL
--------  
----------
--------
JONES
SMITH
STEVENS  
DIANE
MARY
RICHARD
ALFRED  
$18,480.00
$13,200.00
 $9,500.00
$11,000.00

Information Builders