WebSphere Message Broker, Versão 8.0.0.5 Sistemas operacionais: AIX, HP-Itanium, Linux, Solaris, Windows, z/OS

Consulte as informações sobre a versão mais recente do produto em IBM Integration Bus, Versão 9.0

Conjuntos de Mensagens: Importando de COBOL: Recursos Suportados

O importador COBOL utiliza um conjunto de valores padrão e comportamentos ao mapear tipos de dados COBOL para elementos do modelo de mensagem.

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

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 em Janela > Preferências > Importador > COBOL para processar isto.
PIC N xsd:string Configure o nome do código do idioma do tempo de compilação como ja_JP em Janela > Preferências > Importador > COBOL para processar isto.
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, uma cláusula COBOL PICTURE que contém qualquer um dos seguintes caracteres:
  • 'Z'
  • '+'
  • '-'
  • '.'
  • ','
  • 'B'
  • '0'
ou um símbolo monetário.

Se desejar que o tipo lógico do intermediário seja um tipo numérico, certifique-se de que a cláusula COBOL PICTURE não contenha nenhum destes caracteres.

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 MRM CWF dos elementos gerados no modelo de mensagem.

Cláusula 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 COBOL:
    • Leading
    • Leading Separate
    • Trailing
    • Trailing Separate
  2. A palavra-chave SYNC faz o campo ser 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 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 pelo importador de cada um dos elementos importados pelo importador, independentemente da cláusula SYNC. Eles têm valores diferentes de zero quando a cláusula SYNC está presente.

    Onde houver um elemento de repetição, Ignorar Contagem Inicial e Ignorar Contagem Final serão utilizados para a primeira ocorrência do elemento de repetição; para ocorrências subsequentes, apenas Ignorar Contagem Final será utilizado.

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

  3. Todos os arquivos importados devem estar sintaticamente corretos. Os resultados serão imprevisíveis se o arquivo que está sendo importado não estiver sintaticamente correto.
  4. Os tipos de dados COBOL que possuem as palavras-chave POINTER, COMP-X, INDEX ou PROCEDURE-POINTER, não são suportados.
  5. As cláusulas COBOL que contêm a palavra-chave NATIVE causam um erro e não são importadas.
  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. Como alternativa, você pode converter o valor hexadecimal em uma cadeia de caracteres para PIC X ou em um número decimal para PIC 9.
  8. Se os nomes de elementos entrarem em conflito com palavras-chave da linguagem Java™, eles serão modificados prefixando o nome de elemento com um único caractere 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 CWF Alinhamento de Bytes, Ignorar Contagem Inicial e Ignorar Contagem Final de elementos em tal estrutura não estã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 sequência de imagens, o comportamento padrão será inserir os dados com aspas duplas, a menos que a opção de compilação COBOL QUOTE esteja configurada como SINGLE na página Opções de Importação do assistente do importador COBOL.

Números Decimais Externos Assinados

Os componentes Custom Wire Format (CWF) e TDS MRM do WebSphere Message Broker suportam o formato de dados Decimal Externo (também conhecido como Decimal por Zona) para dados numéricos. Neste formato, os dados numéricos são armazenados internamente como dados de caractere decimais. Por exemplo, em um sistema que utiliza o código EBCDIC, o número 1234 armazenado em um campo decimal externo de 4 bytes é armazenado como uma cadeia de caracteres '1234', e sua representação hexadecimal interna real é '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, existem vários mecanismos para a representação interna de dados decimais externos. Uma representação ('Sign ASCII') empregada por máquinas pSeries da IBM usa os códigos ASCII normais ('0' [hex 30] a '9' [hex 39]) para o primeiro ou último dígito de números não sinalizados e positivos 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. Este método utiliza os mesmos caracteres que uma máquina baseada em EBCDIC, mesmo que as representações hexadecimais internas deles sejam diferentes. Se usar esta técnica, a cadeia de caracteres para as plataformas EBCDIC e ASCII será idêntica. Provavelmente, você poderia receber uma mensagem de uma plataforma EBCDIC (criada a partir de um copybook COBOL que contém tais entradas como PIC XXX e PIC S999) e converter a mensagem inteira para ASCII ou outra maneira apropriada. A cadeia de caracteres que representa o campo decimal externo na mensagem (após a conversão de ASCII em EBCDIC, ou de EBCDIC em ASCII) é mapeada para o ponto de código que representa o sinal correto para o decimal.

Este método inclui a limitação de que as chaves são variantes (elas possuem pontos de código diferentes em diferentes páginas de códigos EBCDIC). Este mecanismo funciona apenas para as páginas de códigos EBCDIC nas quais as chaves '{' e '}' (que são utilizadas para representar o 0 com sinal) têm exatamente os pontos de código X'C0' e X'D0'. Por exemplo, funciona para a página de códigos 500 mas não para a página de códigos 871, na qual as chaves possuem os pontos de código X'8E' e X'9C.

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

Nota: Esta opção é apropriada apenas para os elementos ou atributos que possuem uma representação física decimal externa e que possuem um sinal integrado ('Inicial' ou 'Final') (determinado pela propriedade Orientação de Sinal).

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

  Ambiente ASCII Ambiente EBCDIC   Ambiente ASCII Ambiente EBCDIC
  Valores com sinal positivo   Valores com sinal negativo
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)

A tabela a seguir fornece alguns exemplos para um intervalo de números simples que são representativos do que pode ser transmitido ou recebido utilizando estas 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}"

Avisos | Marcas Registradas | Downloads | Biblioteca | Suporte | Feedback

Copyright IBM Corporation 1999, 2014Copyright IBM Corporation 1999, 2014.

        
        Última atualização:
        
        Última atualização: 2015-02-28 18:29:10


Tópico de ReferênciaTópico de Referência | Versão 8.0.0.5 | ad06900_