IMS DB - SSA

SSA significa Segment Search Arguments. SSA é usado para identificar a ocorrência do segmento que está sendo acessada. É um parâmetro opcional. Podemos incluir qualquer número de SSAs dependendo do requisito. Existem dois tipos de SSAs -

  • SSA não qualificado
  • SSA qualificado

SSA não qualificado

Um SSA não qualificado fornece o nome do segmento que está sendo usado na chamada. A seguir está a sintaxe de um SSA não qualificado -

01 UNQUALIFIED-SSA.
   05  SEGMENT-NAME  PIC X(8).
   05  FILLER        PIC X     VALUE SPACE.

Os pontos principais do SSA não qualificado são os seguintes -

  • Um SSA básico não qualificado tem 9 bytes de comprimento.

  • Os primeiros 8 bytes contêm o nome do segmento que está sendo usado para processamento.

  • O último byte sempre contém espaço.

  • DL / I usa o último byte para determinar o tipo de SSA.

  • Para acessar um determinado segmento, mova o nome do segmento no campo SEGMENT-NAME.

As imagens a seguir mostram as estruturas de SSAs não qualificados e qualificados -

SSA qualificado

Um SSA qualificado fornece o tipo de segmento com a ocorrência de banco de dados específica de um segmento. A seguir está a sintaxe de um SSA qualificado -

01 QUALIFIED-SSA.
   05  SEGMENT-NAME  PIC X(8).
   05  FILLER        PIC X(01)     VALUE '('.
   05  FIELD-NAME    PIC X(8).
   05  REL-OPR       PIC X(2).
   05  SEARCH-VALUE  PIC X(n).
   05  FILLER        PIC X(n+1) VALUE ')'.

Os pontos-chave do SSA qualificado são os seguintes -

  • Os primeiros 8 bytes de um SSA qualificado contêm o nome do segmento que está sendo usado para processamento.

  • O nono byte é um parêntese esquerdo '('.

  • Os próximos 8 bytes a partir da décima posição especificam o nome do campo que queremos pesquisar.

  • Após o nome do campo, na 18 ª e 19 ª posições, especificamos de dois caracteres código de operador relacional.

  • Então especificamos o valor do campo e no último byte, há um parêntese direito ')'.

A tabela a seguir mostra os operadores relacionais usados ​​em um SSA qualificado.

Operador Relacional Símbolo Descrição
EQ = Igual
NE ~ = ˜ Não igual
GT > Maior que
GE > = Maior ou igual
LT << Menor que
LE <= Menor ou igual

Códigos de Comando

Os códigos de comando são usados ​​para aprimorar a funcionalidade das chamadas DL / I. Os códigos de comando reduzem o número de chamadas DL / I, tornando os programas simples. Além disso, melhora o desempenho à medida que o número de chamadas é reduzido. A imagem a seguir mostra como os códigos de comando são usados ​​em SSAs não qualificados e qualificados -

Os pontos-chave dos códigos de comando são os seguintes -

  • Para utilizar os códigos de comando, especificar um asterisco na 9 th posição da SSA, como mostrado na imagem acima.

  • O código de comando é codificado na décima posição.

  • De 10 ª posição em diante, DL / I considera todos os caracteres sejam códigos de comando até encontrar um espaço para uma SSA não qualificado e um parêntese esquerdo para um SSA qualificado.

A tabela a seguir mostra a lista de códigos de comando usados ​​em SSA -

Código de Comando Descrição
C Chave Concatenada
D Path Call
F Primeira Ocorrência
eu Última Ocorrência
N Ignorar chamada de caminho
P Definir parentesco
Q Segmento de enfileiramento
você Manter posição neste nível
V Mantenha a posição neste e em todos os níveis acima
- Código de Comando Nulo

Múltiplas Qualificações

Os pontos fundamentais de múltiplas qualificações são os seguintes -

  • Múltiplas qualificações são necessárias quando precisamos usar duas ou mais qualificações ou campos para comparação.

  • Usamos operadores booleanos como AND e OR para conectar duas ou mais qualificações.

  • Várias qualificações podem ser usadas quando desejamos processar um segmento com base em uma gama de valores possíveis para um único campo.

A seguir está a sintaxe de Qualificações Múltiplas -

01 QUALIFIED-SSA.
   05  SEGMENT-NAME  PIC X(8).
   05  FILLER        PIC X(01)     VALUE '('.
   05  FIELD-NAME1   PIC X(8).
   05  REL-OPR       PIC X(2).
   05  SEARCH-VALUE1 PIC X(m).
   05  MUL-QUAL      PIC X      VALUE '&'.
   05  FIELD-NAME2   PIC X(8).
   05  REL-OPR       PIC X(2).
   05  SEARCH-VALUE2 PIC X(n).
   05  FILLER        PIC X(n+1) VALUE ')'.

MUL-QUAL é um termo curto para MULtiple QUALIification no qual podemos fornecer operadores booleanos como AND ou OR.