Importando de COBOL: Recursos Suportados

A tabela a seguir mostra como as definições de COBOL influenciam nas configurações do esquema XML no modelo de mensagens.

Observe que alguns tipos xsd têm '-' depois do tipo. Isso indica que é um tipo simples anônimo baseado nesse tipo. Para cadeias, a finalidade do tipo anônimo é incluir uma restrição de comprimento; para tipos numéricos, a finalidade é incluir uma restrição de valor mínima ou máxima.
Cláusula COBOL Tipo de Dados do Esquema XML Notas
PIC A xsd:string -  
PIC G xsd:string -

Configure o nome do código do idioma do tempo de compilação como ja_JP no Windows - Preferências - Importador - COBOL para processá-lo.

PIC N xsd:string -

Configure o nome do código do idioma do tempo de compilação como ja_JP no Windows - Preferências - Importador - COBOL para processá-lo.

PIC X xsd:string -  
PIC 9(n) n = 1-4 xsd:short - DISPLAY, COMP ou COMP-3
PIC 9(n) n = 5-9 xsd:int - DISPLAY, COMP ou COMP-3
PIC 9(n) n = 10-18 xsd:long - DISPLAY, COMP ou COMP-3
PIC 9(n) n = 19-31 xsd:integer - DISPLAY, COMP ou COMP-3
PIC 9(n)V9(m) xsd:decimal - Qualquer valor de ponto decimal virtual DISPLAY, COMP ou COMP-3
COMP-1 xsd:float -  
COMP-2 xsd:double -  
Qualquer cadeia editada xsd:string -  
Qualquer número editado xsd:string - Por exemplo, PIC Z
VALUE Todos As cláusulas VALUE de Nível Não-88 podem ser importadas como valores padrão de esquema (opção no assistente de importação).

A tabela a seguir mostra como as definições de COBOL influenciam as características físicas de CWF dos elementos que são gerados no modelo de mensagem.

Palavra-chave COBOL Tipo Físico de CWF Características de Comprimento de CWF Outras Características de CWF
PIC X(n)

PIC A(n)

Cadeia de Comprimento Fixo Comprimento = n

Unidades de Comprimento = Bytes

Justificação = Alinhar à Esquerda

Padding Character = SPACE

PIC G(n)

PIC N(n)

Cadeia de Comprimento Fixo Comprimento = n

Unidades de Comprimento = Caracteres

Justificação = Alinhar à Esquerda

Padding Character = SPACE

PIC 9(n) DISPLAY n=1-31 Decimal Externo Comprimento = n

Unidades de Comprimento = Bytes

Justificação = Alinhar à Direita

Caractere de Preenchimento = '0'

Assinado = Desmarcado

Orientação de Sinal= Rastreando

PIC 9(n) COMP, COMP-4, COMP-5 ou BINARY Inteiro Comprimento = 2, 4 ou 8 com base em n

Unidades de Comprimento = Bytes

Assinado = Desmarcado

Orientação de Sinal= Em Branco

PIC 9(n) COMP-3 n=1-18 Decimal Compactado Comprimento = CEILING((n+1)/2)

Unidades de Comprimento = Bytes

Assinado = Desmarcado

Orientação de Sinal= Em Branco

PIC S9(n) DISPLAY n=1-31 Decimal Externo Comprimento = n

Unidades de Comprimento = Bytes

Assinado = Marcado

Orientação de Sinal= Rastreando

*Consulte a Nota 1

PIC S9(n) COMP ou COMP-3

n=1-18

Inteiro ou Decimal Compactado Comprimento = Consulte as definições de COMP e COMP-3 acima

Unidades de Comprimento = Bytes

Assinado = Marcado

Orientação de Sinal= Em Branco

PIC 9(m)V9(n) DISPLAY n=1-31 Decimal Externo Comprimento = n+m

Unidades de Comprimento = Bytes

Assinado = Desmarcado

Orientação de Sinal= Rastreando

Ponto Decimal Virtual = n

PIC 9(m)V9(n) COMP ou COMP-3 Inteiro ou Decimal Compactado Comprimento = CEILING((n+m+1)/2) para COMP-3

Comprimento = 2, 4 ou 8 para COMP

Unidades de Comprimento = Bytes

Assinado = Desmarcado

Orientação de Sinal= Em Branco

Ponto Decimal Virtual = n

COMP-1 Float Comprimento = 4

Unidades de Comprimento = Bytes

Assinado = Marcado

Orientação de Sinal= Em Branco

COMP-2 Float Comprimento = 8

Unidades de Comprimento = Bytes

Assinado = Marcado

Orientação de Sinal= Em Branco

SYNC Flutuante, Inteiro ou Decimal Compactado   Ignorar Contagem Inicial conforme apropriado

Ignorar Contagem Final conforme apropriado

Alinhamento de bytes conforme apropriado

*Consulte a nota 2

Notas:
  1. A Orientação de Sinal pode utilizar um dos seguintes valores, com base nas palavras-chave SEPARATE, LEADING ou TRAILING na definição de COBOL:
    • Leading
    • Leading Separate
    • Trailing
    • Trailing Separate
  2. A Palavra-chave SYNC faz com que o campo seja alinhado em um limite de 1, 2, 4 ou 8 bytes. Isso pode fazer com que 'bytes inativos' sejam incluídos antes ou depois de um campo. Ignorar Contagem Inicial é o número de tais bytes incluídos antes de um campo; Ignorar Contagem Final é o número de bytes incluídos depois de um campo.

    Ignorar Contagem Inicial e Ignorar Contagem Final são calculados para cada elemento importado pelo importador, sem considerar a cláusula SYNC. Eles têm valores diferentes de zero quando a cláusula SYNC está presente.

    Onde houver um elemento repetido, Ignorar Contagem Inicial e Ignorar Contagem Final serão utilizados para a primeira ocorrência do elemento repetido; nas ocorrências subseqüentes, apenas o Ignorar Contagem Final será utilizado.

    Consulte o material de referência de COBOL para obter detalhes dos campos que requerem Alinhamento de Bytes.

  3. O importador COBOL requer que todos os arquivos que estão sendo importados estejam sintaticamente corretos. Os resultados serão imprevisíveis se esse não for o caso.
  4. Os tipos de dados COBOL incluindo POINTER, COMP-X, INDEX e PROCEDURE-POINTER não são suportados.
  5. COBOL contendo a palavra-chave NATIVE causa um erro e não importará.
  6. Os itens de dados de níveis 66 e 77 do COBOL não são importados.
  7. Os valores binários hexadecimais não podem ser atribuídos a literais não-numéricos. Eles não podem residir nas LINKAGE SECTIONs importadas pelo importador COBOL. Eles podem residir em outro lugar no arquivo COBOL. Alternativamente, é possível converter o valor hexadecimal em uma cadeia de caracteres para o PIC X ou em um número decimal para o PIC 9.
  8. Os nomes de elementos conflitantes com as palavras-chave da linguagem Java são modificados prefixando-os com um único caractere de sublinhado.
  9. As extensões orientadas a objetos para o COBOL 85 não são suportadas. Por exemplo, OBJECT-REFERENCE não é suportado.
  10. Cláusula COBOL OCCURS DEPENDING ON. As propriedades Alinhamento de Bytes, Contagem de Salto de Linha Inicial e CWF de Contagem de Salto de Linha Final de elementos dentro de tal estrutura não são configuradas corretamente. Você deve corrigir isso, utilizando o editor de mensagens.
  11. Quando o arquivo de origem COBOL importado contiver QUOTE ou QUOTES na cláusula de valor de uma cadeia de imagens, o comportamento padrão será preencher os dados com aspas duplas, a menos que a opção de compilação COBOL QUOTE esteja definida como SINGLE na página Opções de Importação do assistente do importador COBOL.

Números Decimais Externos Assinados

O componente CWF (Custom Wire Format) do WebSphere Message Broker oferece suporte para a modelagem de dados numéricos utilizando o formato de dados Decimal Externo (também conhecido como Decimal por Zona). Neste formato, um número é armazenado internamente como dados de caracteres decimais. Por exemplo, em um sistema que utiliza o código EBCDIC, o número 1234 armazenado no campo de decimal externo de 4 bytes seria armazenado como a cadeia de caracteres "1234" e sua representação hexadecimal interna real seria F1F2F3F4.

Com os números decimais externos sinalizados, o sinal pode ser incorporado nos dados reais, modificando a primeira metade do primeiro ou do último byte (dependendo se você está utilizando uma representação com sinal no início ou no fim). Geralmente, '0xC' é utilizado para representar um número positivo, '0xD' é utilizado para representar um número negativo e '0xF' é utilizado para representar um número sem sinal.

Nota: Em geral, qualquer '0xA', '0xC', '0xE' ou '0xF' pode ser utilizado para indicar um valor positivo e '0xB' ou '0xD' para indicar um valor negativo. A representação preferida real depende da arquitetura de hardware real.

Em máquinas ASCII, há um número de mecanismos para a representação interna de dados decimais externos. Uma representação ('Sign ASCII') empregada pelas máquinas pSeries da IBM utiliza os códigos ASCII normais ("0" [hex 30] a "9" [hex 39]) para o primeiro/último dígito de números positivos e sem sinal e os caracteres "p" [hex 70] a "y" [hex 79] para números negativos.

Um método alternativo (Sign EBCDIC Custom) é utilizado em algumas outras máquinas com base em ASCII. Utiliza os mesmos caracteres que uma máquina com base em EBCDIC, mesmo que a representação hexadecimal interna real deles seja diferente. Utilizando esta técnica, a cadeia de caracteres para as plataformas EBCDIC e ASCII é idêntica. Você poderia receber potencialmente uma mensagem de uma plataforma EBCDIC (criada a partir de um CopyBook COBOL que contém entradas como PIC XXX e PIC S999) e converter a mensagem inteira para ASCII ou outra forma aproximada. A cadeia de caracteres que representa o campo decimal externo na mensagem (depois da conversão ASCII/EBCDIC) é mapeada para o ponto do código que representa o sinal correto do decimal. Você deveria notar que há uma limitação com este método. As chaves são variantes (ou seja, elas têm pontos de código diferentes em páginas de códigos EBCDIC diferentes). Esse mecanismo funciona somente para as páginas de códigos EBCDIC nas quais as chaves '{' e '}' (utilizadas para representar o 0 com sinal) têm exatamente os pontos de código x'C0' e x'D0'. Por exemplo, funcionará para a página de códigos 500 e não para a página de códigos 871, na qual as chaves têm pontos de código X'8E' e X'9C.

Em um ambiente ASCII (determinado pela propriedade CCSID em tempo de execução), o padrão para entrada e saída é a representação 'Sinal ASCII'. É possível especificar a representação aplicável na camada física CWF para os atributos locais e elementos locais dos tipos decimal, flutuante e inteiro.

Nota: Isso só é adequado para aqueles elementos ou atributos que têm uma representação física decimal externa e que têm um sinal incorporado ('Inicial' ou 'Final') (determinado pela propriedade 'Orientação do Sinal').

A tabela a seguir mostra a representação interna (caractere e valor hexadecimal real) do primeiro ou do último dígito para números decimais externos com um sinal final ou inicial incluído (incorporado), respectivamente. (Nota: a tabela não especifica a representação para os valores sem sinal, que são 0x30-0x39 para ASCII e 0xF0-0xF9 para EBCDIC)

  Valores com sinal positivo   Valores com sinal negativo
Ambiente ASCII Ambiente EBCDIC Ambiente ASCII Ambiente EBCDIC
Digito Sinal ASCII Sinal EBCDIC Personalizado   Sinal ASCII Sinal EBCDIC Personalizado  
0 0(30) {(7B) {(C0) p(70) }(7D) }(D0)
1 1(31) A(41) A(C1) q(71) J(4A) J(D1)
2 2(32) B(42) B(C2) r(72) K(4B) K(D2)
3 3(33) C(43) C(C3) s(73) L(4C) L(D3)
4 4(34) D(44) D(C4) t(74) M(4D) M(D4)
5 5(35) E(45) E(C5) u(75) N(4E) N(D5)
6 6(36) F(46) F(C6) v(76) O(4F) O(D6)
7 7(37) G(47) G(C7) w(77) P(50) P(D7)
8 8(38) H(48) H(C8) x(78) Q(51) Q(D8)
9 9(39) I(49) I(C9) y(79) R(52) R(D9)

Esta próxima tabela fornece alguns exemplos para uma faixa de números simples que seriam representativos do que poderia ser transmitido ou recebido utilizando essas abordagens.

  Sinal inicial Sinal final
  Ambiente ASCII Ambiente EBCDIC Ambiente ASCII Ambiente EBCDIC
Valor decimal Sinal ASCII Sinal EBCDIC Personalizado   Sinal ASCII Sinal EBCDIC Personalizado  
1234

31 32 33 34
"1234"

31 32 33 34
"1234"

F1 F2 F3 F4
"1234"

31 32 33 34
"1234"

31 32 33 34
"1234"

F1 F2 F3 F4
"1234"

+1234

31 32 33 34
"1234"

41 32 33 34
"A234"

C1 F2 F3 F4
"A234"

31 32 33 34
"1234"

31 32 33 44
"123D"

F1 F2 F3 C4
"123D"

-1234

71 32 33 34
"q234"

4A 32 33 34
"J234"

D1 F2 F3 F4
"J234"

31 32 33 74
"123t"

31 32 33 4D
"123M"

F1 F2 F3 D4
"123M"

7890

37 38 39 30
"7890"

37 38 39 30
"7890"

F7 F8 F9 F0
"7890"

37 38 39 30
"7890"

37 38 39 30
"7890"

F7 F8 F9 F0
"7890"

+7890

37 38 39 30
"7890"

47 38 39 30
"G890"

C7 F8 F9 F0
"G890"

37 38 39 30
"7890"

37 38 39 7B
"789{"

F7 F8 F9 C0
"789{"

-7890

77 38 39 30
"w890"

50 38 39 30
"P890"

D7 F8 F9 F0
"P890"

37 38 39 70
"789p"

37 38 39 7D
"789}"

F7 F8 F9 D0
"789}"

Conceitos relacionados
Modelagem de Mensagens
O Modelo de Mensagem
Tarefas relacionadas
Desenvolvendo Modelos de Mensagens
Trabalhando com um Arquivo de Definição de Mensagem
Trabalhando com Objetos de Modelo de Mensagem
Referências relacionadas
Informações de Referência do Modelo de Mensagens
Propriedades do Objeto de Modelo de Mensagem
Avisos | Marcas Registradas | Downloads | Biblioteca | Suporte | Feedback
Direitos Autorais IBM Corporation 1999, 2006 Última Atualização: 1 Sep 2006
ad06900_