Descrição

Utilitários CISIS

A instrução proc começa apagando todos os campos, então inclui como campo 1 o conteúdo do campo 2 e por último inclui como campo 2 o conteúdo do campo 1. Tendo as bases tabela1 e tabela2, pode-se realizar o seguinte exemplo: mx CDS to=1 create=OUT gizmo=tabela1 now –all mx OUT gizmo=tabela2

Dica:

•É possível aplicar mais de um gizmo na linha de comandos. Neste caso cada conversão sucessiva é
realizada sobre o resultado do gizmo precedente.

 

Se forem aplicados dois gizmos com tabela1 e tabela2 à base CDS, que produzem duas conversões recíprocas (portanto os dados originais não
variam).

mx CDS gizmo=tabela1 gizmo=tabela2

O parâmetro gizmo tem muitas aplicações. Por exemplo, poderia se dispor de tabelas em vários idiomas com as equivalências entre o código numérico de um descritor e sua versão nesse idioma. A base de dados terá como dado o valor numérico e a conversão para os termos do idioma desejado será feita durante o processo de formatação.
Outro exemplo interessante é ter uma tabela com os caracteres acentuados e símbolos como campo 1 e seus códigos correspondentes em html (como &eacute para é) no campo 2, desta maneira podem ser obtidos documentos html como saída. Outra aplicação poderia ser a decodificação de abreviaturas ou siglas de instituições, ou abreviaturas de idiomas, de países, etc., que no CDS/ISIS padrão só são realizadas através da função ref+lookup. Tabelas de conversão através de códigos ASCII ou hexadecimais. As tabelas de conversão gizmo são arquivos mestres compostos de dois campos, cujos conteúdos são a cadeia a substituir (campo 1) e a cadeia pela qual será substituída (campo2).

 

Também, é possível especificar tais cadeias de caracteres através da representação numérica dos caracteres que os compõe, permitindo que a tabela gizmo inclua caracteres que não podem ser digitados ou visualizados. Ou que não sejam adequados para a transmissão de dados de modo não transparente. Este tipo de tabela pode ter até quatro campos, que são: os campos 1 e 2 (cadeia a
ser substituída e cadeia pela qual será substituída) e os campos 11 e/ou 21 onde se indica que tipo de informação dos campos 1 e/ou 2 respectivamente. O valor destes campos pode ser: hex (se o conteúdo do campo 1 ou 2 está codificado em dois dígitos hexadecimais) ou asc (se o conteúdo do campo 1 ou 2 está codificado em três dígitos decimais). É possível entrar comentários em cada registro, usando os campos não reservados: 1, 2, 11, 21.

Exemplo: As seguintes tabelas gizmo são equivalentes:

TAG Conteúdo
1 OF THE
2 Ç
TAG Conteúdo
1 OF THE
2 128
3 Asc

 

TAG Conteúdo
1 079070032084072069
2 Ç
                                                                               11 Asc
TAG Conteúdo
1 4F4620544845
2 Ç
                                                                               11 hex

1. Tendo-se um arquivo mestre onde se deseja substituir o caráter – (hexadecimal 2D), pelo caráter ~ (hexadecimal 7E). Primeiro é necessário gerar uma tabela para realizar a substituição, que será um
arquivo mestre que contenha:

TAG Conteúdo
1 2D
2 7D
                                                                               11 Hex
                                                                               21 Hex

Para isto é preciso criar um arquivo texto chamado cambio.seq, cujo conteúdo é: 2D|7E|hex|hex
Em seguida se executa a seguinte linha de comandos:

mx seq=cambio.seq create=cambio -all now

Com isto foi gerada uma tabela com os quatro campos necessários para realizar a substituição. Embora os campos 3 e 4 devessem ter tag 11 e 21 respectivamente, para alterar os números de tag podem-se empregar os utilitários RETAG ou ID2I, mas neste exemplo será feito com o MX, usando o comando proc:

mx cambio proc='d3d4a11#hex#a21#hex#' copy=cambio

Dica:
Para trocar os números de tag podem-se utilizar os utilitários RETAG ou ID2I, que podem ser
vistos em detalhe mais adiante. Agora está tudo certo para realizar a substituição:

mx cds gizmo=cambio -all now

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *