GETPDS: Como Determinar Se um Membro de um Conjunto de dados Particionado Existe

Como:

Sistemas Operacional Disponíveis: z/OS

Linguagens Disponíveis: Reporting, Maintain

A função GETPDS determina se um membro específico de um conjunto de dados particionados (PDS) existe e, se existir, exibe o nome do PDS. 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.

GETPDS é quase idêntico ao FINDMEM, mas GETPDS fornece o nome do PDS ou exibe um conjunto diferente de códigos de status.


Topo da página

x
Sintaxe: Como Determinar se um membro PDS existe
GETPDS(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 a função procura. 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

A44

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

Nome do PDS é o nome do PDS que contém o membro, caso exista.

*D indica que o ddname não está alocado em um conjunto de dados.

*M indica que o membro não existe no PDS.

*E indica a ocorrência de um erro. Por exemplo, o conjunto de dados alocado no ddname não é um PDS (e pode ser um arquivo sequencial).



Exemplo: Como Determinar se um Membro PDS Existe

A função GETPDS procura pelo membro especificado pelo &MEMBER no PDS alocado em &DDNAME e exibe o resultado em &PNAME. O resultado possui o formato A44.

-SET &DDNAME = 'MASTER  ';
-SET &MEMBER = 'EMPLOYEE';
-SET &PNAME = '                                            ';
-SET &PNAME = GETPDS(&DDNAME, &MEMBER, 'A44');
-IF &PNAME EQ '*D' THEN GOTO DDNOAL;
-IF &PNAME EQ '*M' THEN GOTO MEMNOF;
-IF &PNAME EQ '*E' THEN GOTO DDERROR;
-*
-TYPE MEMBER &MEMBER IS FOUND IN
-TYPE THE PDS &PNAME
-TYPE ALLOCATED TO &DDNAME
-*
-EXIT
-DDNOAL
-*
-TYPE DDNAME &DDNAME NOT ALLOCATED
-*
-EXIT
-MEMNOF
-*
-TYPE MEMBER &MEMBER NOT FOUND UNDER DDNAME &DDNAME
-*
-EXIT
-DDERROR
-*
-TYPE ERROR IN GETPDS; DATA SET PROBABLY NOT A PDS.
-*
-EXIT

A saída é parecida com o exemplo a seguir:

MEMBER EMPLOYEE IS FOUND IN
THE PDS USER1.MASTER.DATA
ALLOCATED TO MASTER


Exemplo: Como Exibir os Atributos de um PDS

Para visualizar os atributos do PDS que contêm um membro específico, este procedimento do Dialogue Manager pode pesquisar o membro EMPLOYEE no PDS Alocado no ddname MASTER e, com base em sua existência, aloque o PDS no ddname TEMPMAST. As variáveis do sistema do Dialogue Manager são utilizadas para exibir os atributos.

-SET &DDNAME = 'MASTER  ';
-SET &MEMBER = 'EMPLOYEE';
-SET &PNAME = '                                            ';
-SET &PNAME = GETPDS(&DDNAME, &MEMBER, 'A44');
-IF &PNAME EQ '*D' OR '*M' OR '*E' THEN GOTO DDERROR;
-*
DYNAM ALLOC FILE TEMPMAST DA -
   &PNAME SHR
-RUN
-? MVS DDNAME TEMPMAST
-TYPE The data set attributes include:
-TYPE Data set name is: &DSNAME
-TYPE Volume is: &VOLSER
-TYPE Disposition is: &DISP
-EXIT
-*
-DDERROR
-TYPE Error in GETPDS; Check allocation for &DDNAME for
-TYPE proper allocation.
-*
-EXIT

A saída de exemplo é:

THE DATA SET ATTRIBUTES INCLUDE:
DATA SET NAME IS: USER1.MASTER.DATA
VOLUME IS: USERM0
DISPOSITION IS: SHR

Information Builders