< Anterior | Próximo >

Lição 3: Criar uma Classe de Buffer de Mensagem

A lição 3 conduz você durante a criação de uma classe de buffer de mensagem.
Antes de começar, conclua a Lição 2: Configurar um Projeto da Web e Interface Java e Implementações.
Nesta lição, você
  1. Para criar uma classe de buffer de mensagem, expanda o projeto MultiSegOutput, expanda Recursos Java e expanda JavaSource.
  2. Clique com o botão direito do mouse no pacote sample.ims e selecione Novo > Classe para ativar o assistente Nova Classe.
  3. Digite CCIBuffer como nome da classe. Aceite todas as configurações padrão.
  4. Clique em Concluir. A classe CCIBuffer é aberta no editor Java.
  5. Na seção de comentário da classe CCIBuffer, digite a tag @type-descriptor.message-buffer.
  6. Pressione CTRL-S para salvar as mudanças. Observe que o novo código é gerado automaticamente no arquivo CCIBuffer.java.
    CCIBuffer.java
    /*
     * Created on Oct 13, 2004
     *
     * TODO To change the template for this generated file go to
     * Window - Preferences - Java - Code Style - Code Templates
     */
    package sample.ims;
    
    /**
     * @author ivyho
     *
     * TODO To change the template for this generated type comment go to
     * Window - Preferences - Java - Code Style - Code Templates
     * @type-descriptor.message-buffer
     */
    public class CCIBuffer implements javax.resource.cci.Record,
    		javax.resource.cci.Streamable, com.ibm.etools.marshall.RecordBytes {
    
    	private byte[] buffer_ = null;
    
    	/**
    	 * @generated
    	 */
    	public CCIBuffer() {
    		return;
    	}
    
    	/**
    	 * @generated
    	 * @see javax.resource.cci.Record#getRecordShortDescription()
    	 */
    	public String getRecordShortDescription() {
    		return (this.getClass().getName());
    	}
    
    	/**
    	 * @generated
    	 * @see javax.resource.cci.Record#hashCode()
    	 */
    	public int hashCode() {
    		return (super.hashCode());
    	}
    
    	/**
    	 * @generated
    	 * @see javax.resource.cci.Streamable#write(OutputStream)
    	 */
    	public void write(java.io.OutputStream outputStream)
    			throws java.io.IOException {
    		outputStream.write(buffer_);
    	}
    
    	/**
    	 * @generated
    	 * @see javax.resource.cci.Record#setRecordShortDescription(String)
    	 */
    	public void setRecordShortDescription(String shortDescription) {
    		return;
    	}
    
    	/**
    	 * @generated
    	 */
    	public int getSize() {
    		if (buffer_ != null)
    			return (buffer_.length);
    		else
    			return (0);
    	}
    
    	/**
    	 * @generated
    	 * @see java.lang.Object#toString
    	 */
    	public String toString() {
    		StringBuffer sb = new StringBuffer(super.toString());
    		sb.append("\n");
    		com.ibm.etools.marshall.util.ConversionUtils.dumpBytes(sb, buffer_);
    		return (sb.toString());
    	}
    
    	/**
    	 * @generated
    	 * @see javax.resource.cci.Record#getRecordName()
    	 */
    	public String getRecordName() {
    		return (this.getClass().getName());
    	}
    
    	/**
    	 * @generated
    	 */
    	public byte[] getBytes() {
    		return (buffer_);
    	}
    
    	/**
    	 * @generated
    	 * @see javax.resource.cci.Record#clone()
    	 */
    	public Object clone() throws CloneNotSupportedException {
    		return (super.clone());
    	}
    
    	/**
    	 * @generated
    	 * @see javax.resource.cci.Record#setRecordName(String)
    	 */
    	public void setRecordName(String recordName) {
    		return;
    	}
    
    	/**
    	 * @generated
    	 * @see javax.resource.cci.Record#equals()
    	 */
    	public boolean equals(Object object) {
    		return (super.equals(object));
    	}
    
    	/**
    	 * @generated
    	 * @see javax.resource.cci.Streamable#read(InputStream)
    	 */
    	public void read(java.io.InputStream inputStream)
    			throws java.io.IOException {
    		byte[] input = new byte[inputStream.available()];
    		inputStream.read(input);
    		buffer_ = input;
    	}
    
    	/**
    	 * @generated
    	 */
    	public void setBytes(byte[] bytes) {
    		buffer_ = bytes;
    	}
    
    }
  7. Para criar um método para executar a transação do IMS e o tipo de dados de mensagem de entrada, na visualização Enterprise Explorer, clique com o botão direito do mouse em MSOImpl.java e selecione Origem > Incluir método no Java bean J2C.
  8. Na página Novo Método Java, clique em Incluir.
  9. No campo Nome, digite runMultiSegOutput.
  10. Além do campo Tipo de Entrada, clique em Novo.
  11. Selecione o mapeamento COBOL_to_Java. Clique em Navegar.
  12. Localize o arquivo COBOL MSOut.cbl. Clique em Abrir.
    MSout.cbl
          IDENTIFICATION DIVISION.
          program-id. pgm1.
          ENVIRONMENT DIVISION.                                             
          CONFIGURATION SECTION.                                            
          DATA DIVISION. 
          *
          *    IMS TOC Connector for Java, Exemplo de Saída Multissegmentos
          *
          *********************************************************************/ 
          *                                                                   */ 
          * (c) Copyright IBM Corp. 1998                                      */ 
          * Todos os direitos reservados                                     */ 
          * Materiais Licenciados - Propriedade da IBM                       */ 
          *                                                                   */ 
          * RENÚNCIA DE RESPONSABILIDADE DE GARANTIAS.                                         */ 
          *                                                                   */ 
          * O código (incluso) a seguir é fornecido exclusivamente com o   */ 
          * propósito de ajudá-lo no desenvolvimento de seus aplicativos. */ 
          * O código é fornecido "NO ESTADO EM QUE SE ENCONTRA. A IBM NÃO OFERECE NENHUMA
    GARANTIA, SEJA EXPRESSA OU */ 
          * IMPLÍCITA, INCLUINDO, MAS A ELAS NÃO SE LIMITANDO, AS GARANTIAS IMPLÍCITAS DE
    */ 
          * COMERCIALIZAÇÃO E ADEQUAÇÃO A UM DETERMINADO PROPÓSITO REFERENTES   */ 
          * À FUNÇÃO OU AO DESEMPENHO DESTE CÓDIGO.                         */ 
          * A IBM não poderá ser responsabilizada por nenhum dano derivado da utilização
    */ 
          * do código gerado, mesmo que tenha sido advertida sobre a      */ 
          * possibilidade de ocorrência de tais danos.                                      */ 
          *                                                                   */ 
          * DISTRIBUIÇÃO.                                                     */ 
          *                                                                   */ 
          * Este código gerado pode ser livremente distribuído, copiado, alterado   */ 
          * e incorporado a outro software, contanto que:              */ 
          *   - Ele mantenha o aviso de Copyright e a RENÚNCIA DE RESPONSABILIDADE acima intactos     */ 
          *   - O software não seja revendido                                */ 
          *                                                                   */ 
          *********************************************************************/
          *
            LINKAGE SECTION.
    	                                                   
            01  INPUT-MSG.                                                     
                02  IN-LL          PICTURE S9(3) COMP.                         
                02  IN-ZZ          PICTURE S9(3) COMP.                         
                02  IN-TRCD        PICTURE X(5).                               
                02  IN-DATA1       PICTURE X(6).
                02  IN-DATA2       PICTURE X(6).
    						  
            01  OUTPUT-MSG.                                                   
                02  OUT-ALLSEGS  PICTURE X(99) VALUE SPACES.
    
            01  OUTPUT-SEG1.
                02  OUT-LL       PICTURE S9(3) COMP VALUE +0.                 
                02  OUT-ZZ       PICTURE S9(3) COMP VALUE +0.                  
                02  OUT-DATA1    PICTURE X(12) VALUE SPACES.
    
            01  OUTPUT-SEG2.
                02  OUT-LL       PICTURE S9(3) COMP VALUE +0.                 
                02  OUT-ZZ       PICTURE S9(3) COMP VALUE +0.                  
                02  OUT-DATA1    PICTURE X(13) VALUE SPACES.
                02  OUT-DATA2    PICTURE X(14) VALUE SPACES.
    
            01  OUTPUT-SEG3.
                02  OUT-LL       PICTURE S9(3) COMP VALUE +0.                 
                02  OUT-ZZ       PICTURE S9(3) COMP VALUE +0.                  
                02  OUT-DATA1    PICTURE X(15) VALUE SPACES.
                02  OUT-DATA2    PICTURE X(16) VALUE SPACES.
                02  OUT-DATA3    PICTURE X(17) VALUE SPACES.                     		   		
                            
            PROCEDURE DIVISION.    
  13. Clique em Avançar.
  14. Na página Importador COBOL, clique em Mostrar Avançado.
    1. Selecione as opções a seguir:
      Tabela 1. Configurações de Parâmetro do Importador COBOL
      Parâmetro Valor
      Nome da Plataforma Z/OS
      Página de Códigos IBM-037
      Nome do formato do ponto flutuante IBM® Hexadecimal
      Sinal decimal externo EBCDIC
      Nome endian Big
      Nome endian de número inteiro remoto Big
      Nome das aspas DOUBLE
      Nome trunc STD
      Nome nsymbol DBCS
    2. Clique em Consultar para carregar os dados.
    3. Uma lista de estruturas de dados é mostrada. Selecione INPUT-MSG no campo Estruturas de Dados. Clique em Avançar.
    4. Deixe a opção Salvar Sessão como Script Ant desmarcada.
  15. Na página Salvando Propriedades, o Nome de Classe padrão é INPUTMSG. Sobrescreva o Nome de Classe com InputMsg. Clique em Concluir.
  16. Para criar o tipo de dados de mensagem de saída, clique em Navegar.
  17. Digite CC no campo Selecionar um tipo de dados e CCIBuffer aparece no campo Tipos correspondentes. Selecione CCIBuffer como o tipo de saída. Clique em Concluir.
  18. Na página Método Java, clique em Concluir.
  19. Na página Métodos Java, assegure-se de que interactionVerb esteja configurado como SYNC_SEND_RECEIVE (1) para indicar que a interação com o IMS envolve um envio seguido por uma interação de recebimento.
  20. Clique em Concluir.
  21. Para criar os mapeamentos de dados do segmento de saída, selecione Arquivo > Novo > Outro > Ligação de Dados CICS/IMS Java para chamar o assistente de ligação de dados.
  22. Clique em Avançar.
  23. Selecione COBOL_To_Java na lista Escolher Mapeamento. Clique em Navegar para localizar o copybook COBOL MSOut.cbl.
  24. Clique em Avançar.
  25. Na página Importador COBOL, clique em Mostrar Avançado.
    1. Selecione as opções a seguir:
      Tabela 2. Configurações de Parâmetro do Importador COBOL
      Parâmetro Valor
      Nome da Plataforma Z/OS
      Página de Códigos IBM-037
      Nome do formato do ponto flutuante IBM Hexadecimal
      Sinal decimal externo EBCDIC
      Nome endian Big
      Nome endian de número inteiro remoto Big
      Nome das aspas DOUBLE
      Nome trunc STD
      Nome nsymbol DBCS
    2. Clique em Consultar para carregar os dados.
    3. Uma lista de estruturas de dados é mostrada. Selecione OUTPUT-SEG1 no campo Estruturas de Dados.
    4. Clique em Avançar.
  26. No assistente Salvando Propriedades, clique em Navegar e selecione o projeto MultiSegOutput que você criou antes.
  27. Clique em Navegar para selecionar o nome do pacote: sample.ims.data.
  28. Altere o Nome de Classe de OUTPUTSEG1 para OutputSeg1.
  29. Clique em Concluir.
  30. Agora crie a classe OutputSeg2.java: Selecione Arquivo > Novo > Outro > Ligação de Dados CICS/IMS Java para chamar o assistente Ligação de Dados.
  31. Clique em Avançar.
  32. Selecione COBOL_To_Java na lista Escolher Mapeamento. Clique em Navegar para localizar o copybook COBOL MSOut.cbl.
  33. Na página Importador COBOL, clique em Mostrar Avançado.
    1. Selecione as opções a seguir:
      Tabela 3. Configurações de Parâmetro do Importador COBOL
      Parâmetro Valor
      Nome da Plataforma Z/OS
      Página de Códigos IBM-037
      Nome do formato do ponto flutuante IBM Hexadecimal
      Sinal decimal externo EBCDIC
      Nome endian Big
      Nome endian de número inteiro remoto Big
      Nome das aspas DOUBLE
      Nome trunc STD
      Nome nsymbol DBCS
    2. Clique em Consultar para carregar os dados.
    3. Uma lista de estruturas de dados é mostrada. Selecione OUTPUT-SEG2 no campo Estruturas de Dados.
    4. Clique em Avançar.
  34. No assistente Salvando Propriedades, clique em Navegar para selecionar o projeto MultiSegOutput que você criou antes.
  35. Clique em Navegar para selecionar o nome do pacote: sample.ims.data.
  36. Altere o Nome de Classe de OUTPUTSEG2 para OutputSeg2.
  37. Clique em Concluir.
  38. Agora crie a classe OutputSeg3.java: Selecione Arquivo > Novo > Outro > Ligação de Dados CICS/IMS Java para chamar o assistente Ligação de Dados.
  39. Clique em Avançar.
  40. Selecione COBOL_To_Java na lista Escolher Mapeamento. Clique em Navegar para localizar o copybook COBOL MSOut.cbl.
  41. Na página Importador COBOL, clique em Mostrar Avançado.
    1. Selecione as opções a seguir:
      Tabela 4. Configurações de Parâmetro do Importador COBOL
      Parâmetro Valor
      Nome da Plataforma Z/OS
      Página de Códigos 037
      Nome do formato do ponto flutuante IBM 390 Hexadecimal
      Sinal decimal externo EBCDIC
      Nome endian Big
      Nome endian de número inteiro remoto Big
      Nome das aspas DOUBLE
      Nome trunc STD
      Nome nsymbol DBCS
    2. Clique em Consultar para carregar os dados.
    3. Uma lista de estruturas de dados é mostrada. Selecione OUTPUT-SEG3 no campo Estruturas de Dados.
    4. Clique em Avançar.
  42. No assistente Salvando Propriedades, clique em Navegar para selecionar o projeto MultiSegOutput que você criou antes.
  43. Clique em Navegar para selecionar o nome do pacote: sample.ims.data.
  44. Altere o Nome de Classe de OUTPUTSEG3 para OutputSeg3.
  45. Clique em Concluir.
< Anterior | Próximo >

Feedback