EGL - Notas sobre o Release


1.0 Software Suportado e Especificações
2.0 Limitações
   2.1 Utilitário de Conversão de I4GL em EGL: Valores 'Nulos' Não Estão Configurados para as Variáveis de Limite na Leitura de um Formulário do Console
   2.2 Utilitário de Conversão de I4GL em EGL: Diferença do Tempo de Execução entre I4GL e EGL 'PARA' Instruções de Loop
   2.3 Utilitário de Conversão de I4GL em EGL: Os Registros da Tela Mencionados com uma Observação .* Não Estão Convertidos Corretamente
   2.4 Utilitário de Conversão de I4GL em EGL: As Condições SE do I4GL (SE ! xxx ou SE xxx) e as Expressões Booleanas Não São Totalmente Suportadas no EGL
   2.5 Formulários TUI: Utilização da Propriedade "validValuesMsgKey" com Campos de Formulário Não-numéricos
   2.6 Suporte a Serviços da Web: As Anotações do XSD nos Itens de Dados, Registros ou Itens de Registro Apenas se Aplicam a Interfaces
   2.7 Suporte a Serviços da Web: Tipos de Arquivo WSDL Suportados
   2.8 Suporte a Serviços da Web: Local da Biblioteca de Ligações de Serviço Criada pelo Assistente
   2.9 Depurador EGL
3.0 Problemas Conhecidos
   3.1 Suporte a Serviços da Web: Erros ao Utilizar Matrizes Multidimensionais como Parâmetros para Projetos 1.3 J2EE
   3.2 Suporte a Serviços da Web: Erros ao Utilizar Registros Corrigidos com Subestruturas como Parâmetros para Projetos 1.3 J2EE
   3.3 Suporte a Serviços da Web: Erros ao Utilizar Tipos de Dados de Tempo ou de Intervalo como Parâmetros para Projetos 1.3 J2EE
   3.4 Suporte a Serviços da Web: Erros ao Gerar Itens de Dados do EGL Duplicados de Vários Arquivos WSDL
   3.5 Variáveis de Host para Acesso ao Banco de Dados Oracle
   3.6 Compilando Arquivos Jasper (.jrxml) no EG
   3.7 Problemas de Migração

1.0 Software Suportado e Especificações

O editor Opções de Construção indica que o WebSphere Application Server 5.1 é um tipo de servidor suportado. No entanto, apenas as versões 5.1.1 ou mais recentes do WebSphere Application Server são suportadas.

2.0 Limitações

2.1 Utilitário de Conversão de I4GL em EGL: Valores 'Nulos' Não Estão Configurados para as Variáveis de Limite na Leitura de um Formulário do Console

Descrição: Durante uma execução de instrução openUI de um formulário do console, os valores de retorno das variáveis de limite nunca conterão um valor ?nulo?. No I4GL, se nenhum valor for digitado em um campo de formulário, será retornado um valor nulo.

Solução alternativa: Se o aplicativo verificar especificamente um valor ?nulo? durante ou após uma instrução openUI em um formulário, a lógica deverá ser modificada para verificar se há um valor de cadeia vazia, em vez de nulo.

2.2 Utilitário de Conversão de I4GL em EGL: Diferença do Tempo de Execução entre I4GL e EGL 'PARA' Instruções de Loop

Descrição: No I4GL, a instrução ?for I = 0 para 1 até -1 ? fez com que o bloco de códigos de loop fosse executado zero (0) vezes. No EGL, esse mesmo bloco de códigos resultará em um loop infinito eventualmente causando uma exceção de inteiro fora de limites ou uma exceção de estouro de pilha.

Solução alternativa: Reprocesse o EGL para a instrução para que o bloco de códigos do loop seja executado tantas vezes quanto você desejar. Como alternativa, o loop poderia ser alterado em uma instrução de tempo que executa o bloco de códigos tantas vezes quanto você desejar.

2.3 Utilitário de Conversão de I4GL em EGL: Os Registros da Tela Mencionados com uma Observação .* Não Estão Convertidos Corretamente

Descrição: Às vezes, o utilitário de conversão expande os registros da tela para todas as colunas da tabela, embora apenas um subconjunto de colunas seja utilizado para definir os registros da tela.

Solução alternativa: Remover os nomes de colunas irrelevantes das instruções convertidas do EGL.

2.4 Utilitário de Conversão de I4GL em EGL: As Condições SE do I4GL (SE ! xxx ou SE xxx) e as Expressões Booleanas Não São Totalmente Suportadas no EGL

Descrição: As condições SE em "SE ! xxx" ou "SE xxx" emitem erros de validação. Expressões booleanas não são suportadas no EGL e geram erros de validação.

Solução alternativa: O Utilitário de Conversão transforma automaticamente essas funções SE de acordo com o contexto em que são utilizadas: essa limitação não tem impacto na conversão de aplicativo do I4GL. Isso fica documentado aqui para que os usuários do I4GL possam saber o nível de suporte das condições SE ao gravar novos aplicativos no EGL.

No caso de expressões Booleanas, converta o resultado Booleano de uma condição em um valor numérico de 0 a 1.

2.5 Formulários TUI: Utilização da Propriedade "validValuesMsgKey" com Campos de Formulário Não-numéricos

Quando você utilizar o Editor de Formulário do EGL ou editar a origem do EGL manualmente em uma parte do formulário, a seguinte mensagem de validação será emitida quando a propriedade "validValuesMsgKey" for utilizada com um campo de formulário cujo tipo primitivo seja não-numérico, por exemplo, carac ou carac do bd:

IWN.VAL.5381.e 76/0 Propriedade: validValuesMsgKey. O valor dessa propriedade para o campo ... no formulário ... é inválido. A propriedade é uma propriedade de item numérico.

Para que você utilize essa propriedade com um primitivo não-numérico, sugerimos a seguinte solução alternativa:

  1. Abra o arquivo que contém o formulário com o Editor do EGL. Clique com o botão direito do mouse no arquivo e selecione Abrir com > Editor do EGL na visualização Explorer do Projeto.
  2. Em vez de especificar um tipo primitivo na declaração do campo para o qual validValuesMsgKey está configurado, especifique uma parte do item de dados na declaração do campo. A parte do item de dados deverá especificar o mesmo tipo primitivo que o campo especificou.

Por exemplo, se o campo original tiver sido definido como:

AÇÃO char(1) {inputRequiredMsgKey = "0003", validValues = ["I","S","U","D"], ..., validValuesMsgKey = "0004"}; //Essa linha deve ter o erro IWN.VAL.5381 Altere a definição do campo para:

AÇÃO charOneItem {inputRequiredMsgKey = "0003", validValues = ["I","S","U","D"], ..., validValuesMsgKey = "0004"}; //Essa linha não deve ter erro

No mesmo arquivo, fora do grupo de formulários, digite o seguinte:
DataItem charOneItem char(1) { validValuesMsgKey="1000" } end

2.6 Suporte a Serviços da Web: As Anotações do XSD nos Itens de Dados, Registros ou Itens de Registro Apenas se Aplicam a Interfaces

As anotações do XSD aplicam-se às definições do item de dados, definições de registro e declarações do item de dados que reflitam as facetas do tipo de dados do esquema XML encontradas em um arquivo WSDL de Serviço da Web, e só fazem sentido quando utilizadas em parâmetros de função da Interface e valores de retorno derivados de um arquivo WSDL.

Exemplo:

DataItem cadeia de fim de semana {@xsd {enumeration=["Saturday", "Sunday"] }} end // reflete a restrição WSDL de valores para fim de semana

Calendário da Interface

função pública weekendPlanner (weekendDay fim de semana em, . . .); // apenas valores de argumento sábado e domingo podem ser enviados para esta função de serviço da Web

end

2.7 Suporte a Serviços da Web: Tipos de Arquivo WSDL Suportados

O assistente Criar Interfaces do EGL apenas suporta arquivos WSDL que sejam RPC/Encoded, RPC/Literal e Document/Literal (Agrupado). Arquivos WSDL que sejam Document/Literal (Agrupado) não são suportados.

2.8 Suporte a Serviços da Web: Local da Biblioteca de Ligações de Serviço Criada pelo Assistente

O Assistente Criar Biblioteca de Ligações de Serviço de um Serviço do EGL não copia arquivos WSDL em um projeto diferente. Se a Biblioteca de Ligações de Serviço for criada em um projeto diferente do destino do serviço gerado, o usuário deverá criar manualmente uma cópia dos arquivos WSDL gerados pela Biblioteca de Ligações de Serviço no local indicado pela ligação da Web.

2.9 Depurador EGL

Você não pode utilizar o depurador EGL para programas que contenham relatórios. O suporte para essa função será fornecido em uma atualização futura.

3.0 Problemas Conhecidos

3.1 Suporte a Serviços da Web: Erros ao Utilizar Matrizes Multidimensionais como Parâmetros para Projetos 1.3 J2EE

Os serviços gerados como um Serviço da Web ou Bibliotecas de Ligações de Serviço com Ligações da Web gerarão código Java com erros de compilação se matrizes multidimensionais forem utilizadas como parâmetros ou definidas nos registros utilizados como parâmetros nas funções de serviço ou da interface quando gerados para um projeto da Web com um nível J2EE 1.3.

Serviço myService

função f1(param string[][][] em) // causa erros de compilação quando gerada como um Serviço da Web para um Projeto da Web com J2EE 1.3

. . .

end

end

Serviço myService

função1 (param string[] em) // gera OK para um Projeto da Web com J2EE 1.3

. . .

end

end

3.2 Suporte a Serviços da Web: Erros ao Utilizar Registros Corrigidos com Subestruturas como Parâmetros para Projetos 1.3 J2EE

Os serviços gerados como um Serviço da Web ou Bibliotecas de Ligações de Serviço com Ligações da Web gerarão código Java com erros de compilação se os registros corrigidos que contêm itens de dados subestruturados ou itens de dados com ocorrências > 1 são utilizados como parâmetros ou definidas nos registros utilizados como parâmetros nas funções de serviço ou da interface quando gerados para um projeto da Web com um nível J2EE 1.3.

Exemplo:

Registro mySubstructuredRecord 10 item1 char(10); 20 item 2 char(10); encerrar

Serviço myService função pública f1(param mySubstructuredRecord em) // causa erros de compilação quando gerados como um Serviço da Web para um Projeto da Web com J2EE 1.3 . . . encerrar encerrar

Registro myFlatRecord 10 item1 char(10); 10 item2 char(10); encerrar

Serviço myService função pública f1(param myFlatRecord em) // gera OK para um Projeto da Web com J2EE 1.3 . . . encerrar encerrar

3.3 Suporte a Serviços da Web: Erros ao Utilizar Tipos de Dados de Tempo ou de Intervalo como Parâmetros para Projetos 1.3 J2EE

Os serviços gerados como um Serviço da Web ou Bibliotecas de Ligações de Serviço com Ligações da Web com tipos de dados de tempo ou de intervalo utilizados como parâmetros ou definidos nos registros utilizados como parâmetros nas funções de serviço ou da interface quando gerados para um projeto da Web com um nível J2EE 1.3 emitirão uma exceção Java durante o tempo de execução.

3.4 Suporte a Serviços da Web: Erros ao Gerar Itens de Dados do EGL Duplicados de Vários Arquivos WSDL

Utilizando o assistente Criar Interfaces do EGL com dois ou mais arquivos WSDL que contenham os mesmos tipos de definição do esquema XML no mesmo projeto do EGL causarão a criação de definições de dados do EGL duplicadas, resultando em erros de validação do EGL.

3.5 Variáveis de Host para Acesso ao Banco de Dados Oracle

Se seu programa EGL acessar um banco de dados Oracle e utilizar uma instrução OPEN para abrir um conjunto de resultados, a cláusula SELECT da instrução OPEN não poderá utilizar os nomes de variáveis de host. Se os nomes das variáveis de host forem especificados, nenhum valor será configurado no elemento correspondente da cláusula de utilização da instrução OPEN.

3.6 Compilando Arquivos Jasper (.jrxml) no EG

O EGL fornece um construtor que compila os arquivos JasperReport toda vez que são salvos. Se os aplicativos EGL incluírem rotinas de tratamento de relatório, certifique-se de que o Java SDK 1.3.1 (ou um nível superior) esteja em sua máquina de desenvolvimento e que o diretório bin SDK esteja listado como parte da Variável de Ambiente PATH do sistema. (ou seja, C:\jdk1.3.1_14\bin). Se você não tiver o Java SDK instalado, obterá o seguinte tipo de erro quando construir um arquivo .jrxml: Erro na compilação do arquivo de origem java de relatório.

3.7 Problemas de Migração

Esse pacote de atualizações inclui muitas alterações na sintaxe do EGL anterior. Se você tiver criado partes do EGL utilizando a Versão 5.1.2 ou 6.0 desse produto, provavelmente verá os erros de validação para essas partes depois de instalar esse pacote de atualizações. Uma ferramenta de migração simples é fornecida para atualização da sintaxe em seus arquivos de origem. Consulte a documentação de ajuda do EGL para obter informações adicionais sobre a ferramenta de Migração do EGL V6.0.

Retornar para o arquivo leia-me principal