Prévia do material em texto
Casas Bahia Documento Confidencial Página: 1 Manual Básico de Visual Age Preparado pelo Departamento de Novas Tecnologias Manual Básico de Visual Age Versão: 1.0 user_guide_VisualAge_basico.odt Data: 29/01/13 Via Varejo Documento Confidencial Página: 2 Histórico de Revisões: Data Autor Descrição Versão 29/01/13 Machado Versão Inicial do documento 1.0 Sumário 1 Introdução ....................................................................................................................................... 3 2 Configurando ambiente de Desenvolvimento Casas Bahia ............................................................. 8 3 Definindo a estrutura de um programa .......................................................................................... 14 4 - Tipos de partes ............................................................................................................................. 17 Adicionar uma nova parte ( registros, funcões, programas ou mapas ................................ 17 ........................................................................................................................................................... 18 Registros: Working Storage (areas secundarias) ........................................................................... 18 SQL ROW (linhas da tabela) ....................................................................................................... 18 Function => Processos ................................................................................................................... 21 Teste ............................................................................................................................................ 30 Manual Básico de Visual Age Versão: 1.0 user_guide_VisualAge_basico.odt Data: 29/01/13 Via Varejo Documento Confidencial Página: 3 1 Introdução Este documento tem como finalidade fornecer ajuda a novos membros da equipe de desenvolvimento além de servir também como material de referência aos demais. ESTRUTURA DO VISUAL AGE FOR JAVA ENVY Repositório único onde estão todas as aplicações. É um arquivo único, não havendo separações por sistema. Este arquivo está no servidor do Visual Age. WORKSPACE É a visão que cada desenvolvedor tem do ENVY. Esta área está no micro de cada desenvolvedor, sendo a área de trabalho de cada um. Não há como atuar no ENVY diretamente, somente através do Workspace. O workspace é do desenvolvedor, portanto em cada uma deverá conter as aplicações que o mesmo está utilizando. Ao se instalar o VA em uma estação este terá um Workspace padrão que será automaticamente carregado. A partir disso o desenvolvedor irá carregar para a sua área o que for necessário. VAGEN PART CLASS Todos os tipos de membros no VA são chamados de VAGen part class. Para cada tipo de membro são colocados prefixos distintos, como por exemplo : VAGenRecords, VAGenMaps, VAGenTables etc ( MAPS, ITEMS, RECORDS etc) VAGEN PART Cada membro é agora armazenado como VAGen part. Exemplos: as aplicações, os registros, os mapas, os processos, as tabelas VA, as áreas de working, etc. Program As aplicações são chamadas de programas. Package O package é um grupo de classes e métodos (VAGen part class e VAGen part) Manual Básico de Visual Age Versão: 1.0 user_guide_VisualAge_basico.odt Data: 29/01/13 Via Varejo Documento Confidencial Página: 4 Project O projeto é composto de packages, VAGen part class, VAGen part. É somente através do project que o desenvolvedor poderá carregar uma aplicação para ser alterada. View Cada tela GUI é uma view. Hierarquia obrigatória Project (ex: J2BA) Package (ex: j2ba.pkg) VAGen Part Class VAGen Part (ex: J2BA, J2BAR01, J2BAW01) Usuário Cada desenvolvedor terá seu usuário igual ao seu usuário do CICS. Há um usuário chamado Adminstrator e um usuário OPER. O Administrator é o responsável pela manutenção do ENVY e também é o usuário de maior autoridade na ferramenta. O usuário OPER é o usuário que será o responsável por todas as aplicações em produção. Há também um usuário chamado DA, responsável pela manutenção dos dados da “ Padrão “. EDITION Para que uma aplicação possa ser alterada, deve-se abrir uma nova edição da mesma (Open Edition). Deve-se abrir novas edições de todos os componentes da aplicação, ou seja, do Projeto, do Package e das Classes. É através da abertura de uma edição que torna-se possível saber que uma aplicação está em manutenção. Manual Básico de Visual Age Versão: 1.0 user_guide_VisualAge_basico.odt Data: 29/01/13 Via Varejo Documento Confidencial Página: 5 SCRATCH EDITION Quando se altera algum método de uma aplicação sem antes ter se aberto uma edição, o VAGen for Java automaticamente abrirá uma scratch edition. Scratch significa LIXO, ou seja, somente a pessoa que está efetuando a alteração a estará vendo, e não poderá fazer nada com ela a não ser que a transforme em um edição aberta (Open Edition). Deve-se tomar muito cuidado para não se confundir com as edições, por isso numa manutenção tomar sempre como primeiro passo, a abertura de uma edição (Open Edition). VERSION/RELEASE A partir do momento em que a pessoa que está alterando ou criando uma aplicação desejar que a mesma possa ser vista ou testada por outras pessoas, esta aplicação deverá sofrer uma liberação (Release). A partir deste ponto esta alteração estará disponível no repositório como uma edição aberta (Open Edition) e visível por todos os usuários do ENVY. Somente uma Edição aberta (Open Edition) poderá sofrer Release, ou seja, Scratch editions não podem ser liberadas. Para as aplicações que já estiverem prontas (testadas) para o operacional, estas devem ser “versionadas”. A partir do momento que se “versiona” uma aplicação, esta versão criada não poderá mais ser alterada. Para se alterar uma versão deve-se abrir uma nova edição desta versão (Open Editon). PACKAGE GROUP Cada package tem um grupo composto por usuários. Ao se criar um package, o único participante do grupo é o criador do mesmo. Para que uma outra pessoa , que não o criador, possa alterar os componentes do package, esta deve fazer parte do grupo do mesmo. Somente as pessoas participantes deste grupo poderão alterar a aplicação componente deste package. OWNER Cada project, cada package e cada VAGen part class tem um dono (cada um pode ter um dono diferente). PROJECT OWNER O project owner é o responsável pela organização do projeto. É o único que pode criar packages no projeto e manter sua total integridade. Manual Básico de Visual Age Versão: 1.0 user_guide_VisualAge_basico.odt Data: 29/01/13 Via Varejo Documento Confidencial Página: 6 -Como posso me tornar um project owner? - Criando um novo projeto - Recebendo a transferencia de owner do antigo dono de um projeto existente. -O que posso fazer como um project owner ? - Open editions no project - Versionar/Release o project - Criar packages no project - Transferir o cargo de dono (owner) para outro desenvolvedor. PACKAGE OWNER O package owner é o responsável pelo gerenciamento do package. -Como posso me tornar um package owner ? - Criando um novo package - Recebendoa transferência de owner do antigo dono do package.(Você deve fazer parte do grupo do package) -O que posso fazer como um package owner ? - Adicionar novos usuários ao grupo do package. - Eliminar usuários do grupo do package - Open editions no package - Versionar/Release o package - Transferir o cargo de dono (owner) para outro desenvolvedor. CLASS OWNER O dono da classe é o responsável pelo gerenciamento da classe -Como posso me tornar um class owner ? - Criando uma nova classe em uma edição de package em que eu esteja presente no grupo. - Recebendo a transferência de owner de qualquer integrante do grupo do package. Manual Básico de Visual Age Versão: 1.0 user_guide_VisualAge_basico.odt Data: 29/01/13 Via Varejo Documento Confidencial Página: 7 -O que posso fazer como um class owner ? - Versionar / Release da classe - Eliminar uma classe CLASS DEVELOPER O class developer é um usuário que criou uma edição da classe. Ao criar uma open edition de uma classe, automaticamente este usuário se transforma em seu class developer. -Como posso me tornar um class developer ? - Abrindo uma nova edição de uma classe existente - Criando uma nova classe e uma edição de package em que você esteja presente no grupo -O que eu posso fazer como um class developer ? - Adicionar a open edition da classe em seu workbench - Versionar a open edition - Mudar a definição da classe - Efetuar manutenções nos métodos presentes na classe Manual Básico de Visual Age Versão: 1.0 user_guide_VisualAge_basico.odt Data: 29/01/13 Via Varejo Documento Confidencial Página: 8 2 Configurando ambiente de Desenvolvimento Casas Bahia - Padrão O Project Padrão contem todos os data itens. Todo analista deverá ter em seu Workspace a última versão do project Padrão. A manutenção deste project será somente da responsabilidade do usuário DA. - Geração Como o VAGen for Java permite que se efetue a geração de aplicações para vários ambientes, foi criado um project para Gerações. Neste project estão contidos os padrões a serem utilizados na geração de aplicações para cada ambiente. Todo desenvolvedor deverá ter em seu Workspace a última versão deste project. - Configurando seu Workspace - Em seu Workbench clicar em Workspace --> Open VAGen Parts Browser - Em VAGen Parts Browser clicar em Window --> Options - Em VisualAge Generator Options - Em Date Formats - Short Gregorian - DD.MM.YY - Long Gregorian - DD.MM.YYYY - Em Generation - Default Generation Options Part - GERACAOMVSCICS.OPT - Client - Generation Options part - GERACAOMVSCICS.OPT - Server - Generation Options part - GERACAOMVSCICS.OPT - Em Map - Supported Devices - 3278-2 - 24x80 Manual Básico de Visual Age Versão: 1.0 user_guide_VisualAge_basico.odt Data: 29/01/13 Via Varejo Documento Confidencial Página: 9 - Em Program - Preferred Edition View - Main function - Program Type - Main Transaction - Segmented - Em SQL - Database Name - DBDMVS - Database Management System - DB2 - SQL date/time - EUR - Database Authorization User ID - XXXXXXXX Password - (sua password do CICS) - Em Test - File options Resource Association File Name - t:\EZERFILE.RAF - Em Test Linkage - Linkage Table Part - LINKAGEMVSCICSTST Importante : ao final salvar esta configuração : - Em VAGen Parts Browser - Window - Save Settings as Defaults - Como proceder numa alteração : - Alteração a ser passada para a programação: - Analista passa para o responsável pela programação a aplicação a ser alterada. - Responsável pela programação: - Utilizando o usuário OPER: - Cria Open Edition do Project e do Package - Release no Package - Cadastra o programador que efetuará a manutenção no grupo do package da Manual Básico de Visual Age Versão: 1.0 user_guide_VisualAge_basico.odt Data: 29/01/13 Via Varejo Documento Confidencial Página: 10 aplicação. - Coloca o programador como owner do package - Coloca o programador como owner de todas as classes do package - Programador - Carrega para seu workspace a última edição da aplicação (será uma open edition) - Efetua a manutenção nos métodos e/ou cria novas classes - Testa aplicação - Versiona as classes - Analista - Carrega para seu workspace a última edição da aplicação (será uma open edition) - Testa a aplicação - Se teste não OK - elimina esta edição da aplicação de seu workspace - aciona o programador para que este efetue a devida manutenção na aplicação Senão - avisa o programador que a aplicação está OK - Programador - Versiona o package da aplicação - Coloca o usuário OPER como owner de todas as classes da aplicação - Coloca o usuário OPER como owner do package da aplicação. - Analista - Efetua a geração da aplicação pelo VAGen for Java - Utilizando o usuário OPER - Versiona o Project da aplicação - Solicita o operacional da mesma. Manual Básico de Visual Age Versão: 1.0 user_guide_VisualAge_basico.odt Data: 29/01/13 Via Varejo Documento Confidencial Página: 11 - Alteração a ser feita pelo próprio analista - Utilizando o usuário OPER: - Carrega o project da aplicação para o workspace. - Cria Open Edition do Project - Cria Open edition do package da aplicação - Release no Package - Cadastra seu usuário no grupo do package (se ainda não estiver) - Coloca o seu usuário como owner do Project, do Package e de todas as classes da aplicação. - Utilizando o seu usuário - Efetua a manutenção nos métodos e/ou cria novas classes - Testa aplicação - Versiona as classes - Versiona o package da aplicação - Versiona o project da aplicação - Efetua a geração da aplicação pelo VAGen for Java - Coloca o usuário OPER como owner de todas as classes da aplicação - Coloca o usuário OPER como owner do package da aplicação. - Coloca o usuário OPER como owner do project da aplicação - Solicita o operacional da mesma. - Alteração a ser passada para a programação, mas com alguma alteracao a ser feita antes pelo analista (ex:mapa): - Analista - Utilizando o usuário OPER: - Cria open edition do Project e do Package - Release no package - Cadastra o seu usuário no grupo do package da aplicação - Coloca o seu usuário como owner do package e de todas as classes Manual Básico de Visual Age Versão: 1.0 user_guide_VisualAge_basico.odt Data: 29/01/13 Via Varejo Documento Confidencial Página: 12 - Utilizando o seu usuário: - Efetua a manutenção (mapa ou outra classe) - Versiona as classes alteradas - Versiona o package - Coloca o usuário OPER como owner de todas as classes da aplicação e como owner do package - Analista ou Responsável pela programação: - Utilizando o usuário OPER: - Carrega paraseu workspace a última edição da aplicação (será uma open edition) - Cria open edition do package - Release no package - Cadastra o programador que efetuará a manutenção no grupo do package - Coloca o programador como owner do package - Coloca o programador como owner de todas as classes do package - Proceder seguindo os passos definidos em : Como proceder uma alteração --> Alteração a ser passada para a programação --> Programação - Como proceder numa nova aplicação : - Aplicação a ser passada para a programação: - Analista - Cria o project da aplicação - Cria o package da aplicação - Cria o mapa da aplicação - Cria a área de comunicação - Cria tabelas (table editions) (se houverem) - Versiona todas as classes da aplicação - Versiona e da release do package da aplicação - Versiona o project da aplicação - Coloca o usuário OPER como owner de todas as Manual Básico de Visual Age Versão: 1.0 user_guide_VisualAge_basico.odt Data: 29/01/13 Via Varejo Documento Confidencial Página: 13 classes da aplicação - Coloca o usuário OPER como owner do package da aplicação - Coloca o usuário OPER como owner do project da aplicação. - Efetua todos os procedimentos das aplicações a serem passadas para alteração pela programação. - Aplicação a ser feita pelo analista : - Analista - Cria o project da aplicação - Cria o package da aplicação - Realiza a programação - Testa a aplicação - Versiona todas as classes da aplicação - Versiona e da release do package da aplicação - Versiona o project da aplicação - Efetua a geração da aplicação pelo VAGen for Java - Coloca o usuário OPER como owner de todas as classes da aplicação - Coloca o usuário OPER como owner do package da aplicação - Coloca o usuário OPER como owner do project da aplicação. - Solicita o operacional da aplicação. Atenção : ao descarregar uma aplicação do seu workspace, sempre descarregá-la através do project, nunca descarregar somente o package da aplicação. Manual Básico de Visual Age Versão: 1.0 user_guide_VisualAge_basico.odt Data: 29/01/13 Via Varejo Documento Confidencial Página: 14 3 Definindo a estrutura de um programa Type Programa - Modo de execução -> escolha Main Transaction - Segmented Segmented Each write to the terminal (CONVERSE or XFER with map or UI record) is the end of a unit of work. => Traduzindo: Cada tela exibida é o fim de uma unidade de trabalho, serao encerradas as posiçoes de arquivos ou tabelas, ou seja como utilizamos somente tabelas em programas on-line, será dado commit implicito (efetiva as atualizações) a cada converse. Specifications -> indicar a Working Principal e o Grupo de Mapas do programa Tables and additional Records -> Tabelas e registros adicionais Tabelas (table editor/DSCAT01), area de trabalho (DSCAW02) e areas de comunicação com outras aplicações (A0AAW01,AOCAW03) deverão ser informadas. Structure Diagram Manual Básico de Visual Age Versão: 1.0 user_guide_VisualAge_basico.odt Data: 29/01/13 Via Varejo Documento Confidencial Página: 15 Dois processos devem ser informados: o processo inicial (P01) onde inicializamos registros e variaveis e o processo principal (P02) que representa o fluxo principal de seu programa. Clique no processo 02 (DSCAP02) e escolha Instruçoes de Fluxo -> voce deve incluir o nome DSCAP02(); isto significa que ao utilizar o comando EZEFLO retornará sempre ao fluxo escolhido e nesse caso o retorno será sempre para o processo DSCAP02 como mostra o exemplo.. Manual Básico de Visual Age Versão: 1.0 user_guide_VisualAge_basico.odt Data: 29/01/13 Via Varejo Documento Confidencial Página: 16 Manual Básico de Visual Age Versão: 1.0 user_guide_VisualAge_basico.odt Data: 29/01/13 Via Varejo Documento Confidencial Página: 17 Clique em propriedades para inserir UMOD - table editor (tabela de mensagens). Ao utilizar em seu codigo o comando EZEMNO será feita a procura na tabela de mensagem UM0D e sera recuperada a descrição da mensagem correspondente ao codigo informado em seu programa. Casas Bahia Documento Confidencial Página: 18 4 - Tipos de partes Adicionar uma nova parte ( registros, funcões, programas ou mapas Adicionando um Mapa: nome do programa DSCAG (G->grupo de mapas) DSCAM01 (M01 => informa que sera o primeiro mapa contido no do grupo de mapas do programa) Casas Bahia Documento Confidencial Página: 19 Registros: Working Storage (areas secundarias) SQL ROW (linhas da tabela) Escolha o tipo RECORD e o nome padrao será o nome do programa + R (de registro) + num. sequencial (DSBAR01) e associe o registro ao Package já criado.. Troque para SQL ROW e utilize sempre como SHARED, assim os dados recuperados serão os data-itens já contidos no Project Padrão... Casas Bahia Documento Confidencial Página: 20 Para inserir a Tabela SQL que deseja trazer os campos clique na opcao propriedade Clique em Inserir e preencha com o nome da tabela. Esta por sua vez já deve estar criada no USER ID Casas Bahia Documento Confidencial Página: 21 Clique agora em Recuperar SQL - irá trazer todos os campos da tabela inserida contida em seu USER ID, lembre-se de deletar os campos que nao irá em seu programa. Casas Bahia Documento Confidencial Página: 22 Informar o seu User ID e a Password que faz acesso ao SQL Observação Importante: Data itens - Se o data item definido em seu registro ou working storage estivercomo Shared e, houver a necessidade de se alterar as características do mesmo, este deve ser alterado para nonShared. (a não observancia deste item acarreta em geração de novas edições inválidas no projeto Padrão e problemas no futuro para se efetuar o operacional da aplicação) Casas Bahia Documento Confidencial Página: 23 Function => Processos LISTA DAS OPÇÕES DE PROCESSO CONVERSE Exibe um mapa e aguarda uma resposta do operador. DISPLAY Envia um mapa para o BUFFER do terminal. INQUIRY Obtem um registro de um arquivo. UPDATE Obtem uma registro de um arquivo para atualização / deleção. REPLACE Regrava um registro atualizado no arquivo. ADD Grava um novo registro no arquivo. DELETE Remove um registro do arquivo. CLOSE Fecha arquivos, disconecta printers ou libera SQL ROW´s SCAN Obtem o próximo registro de um arquivo em ordem sequencial para consulta. EXECUTE Executa instruções de processamento sem operações de I/O. SETINQ Posiciona o cursor para um SCAN em tabela relacional. SETUPD Posiciona o cursor para um SCAN com update. SQLEXEC Executa SQL STATMENT definidos pelo usuário. OBSERVAÇÕES: Todas as opções de processo, exceto EXECUTE, operam com um objeto (registro ou mapa). A opção EXECUTE é usadapara inicialização, término, erros ou para processamento de dados recebidos de um arquivo ou terminal. Criando um processo de leitura Nome da parte => o nome do programa DSBA + P (de processo) + o numero sequencial. Casas Bahia Documento Confidencial Página: 24 Opção - Inquiry -> Obtem um registro de um arquivo (tabela) Clique em Propriedades e preencha Rotina de erro igual EZERTN - pois em caso de erro o programa retornará ao processo chamador e coloque tambem a descrição da função executada seguida do nome da tabela no campo Descrição Casas Bahia Documento Confidencial Página: 25 Clique em editor de SQL/DLI Abrirá o statement com os campos definidos no registro (DSBAR01) Casas Bahia Documento Confidencial Página: 26 A condição de validação de seu statement sera inserida na parte WHERE/GROUP BY/HAVING Casas Bahia Documento Confidencial Página: 27 Clique em Validate para validar sua sintaxe Casas Bahia Documento Confidencial Página: 28 Em Properties se você marcar Single Row Select -> significa que retornará somente um linha na pesquisa resultante, o registro não pode apresentar duplicidade. Caso não marcado a opção Single Row Select resulta em trazer apenas uma linha, embora a condição estabelecida possa apresentar duplicidade, ou seja mais de uma linha. A instrução SETINQ = Posiciona o cursor para um SCAN em tabela relacional. Casas Bahia Documento Confidencial Página: 29 A instrução SCAN => Obtem o próximo registro de um arquivo em ordem sequencial para consulta. Instrução DELETE ou UPDATE no Visual AGE - > utilize a opção SQLEXEC Clique em Editor SQL/DLI vai trazer a tela SQL Statement Editor para voce completar, clique em propriedade e escolha a opçao Delete ou Update no Model SQL Statement Casas Bahia Documento Confidencial Página: 30 Clique em ok e depois novamente em SQL/DLI irá abrir a tela com o COMANDO DELETE ou UPDATE, conforme sua escolha. Casas Bahia Documento Confidencial Página: 31 Casas Bahia Documento Confidencial Página: 32 Teste Sempre ao testar uma aplicação o Test Monitor será inicializado. É a partir deste monitor que é possível acompanhar o teste de uma aplicação. - Para se reposicionar o teste em algum comando, basta clicar no comando que se deseja executar (em Statement Monitor) e confirmar a reposição ou cancelar a reposição. Como atualizar variáveis em um teste - Para atualizar algum campo, basta clicar no campo que se deseja atualizar (em Watchpoint Monitor) e clicar Update. Aparecerá automaticamente uma janela solicitando o valor a ser atribuido ao campo. Caso o campo a ser atualizado não esteja presente no Watchpoint Monitor deve-se ir ao menu : - Tools --> Program Data Casas Bahia Documento Confidencial Página: 33 - escolher qual dado se quer atualizar - clicar em Browse - escolher o campo - clicar em update e atribuir o novo conteúdo ao campo. - Para se mover algum valor para um campo (valor fixo ou o conteúdo de um campo para outro) deve-se ir ao menu: - Tools --> Move Data - colocar o valor a ser movimentado (ou a variável) e o campo que receberá o valor . Como verificar o conteúdo de um campo no teste - Para verificar o conteúdo de um campo que não esteja presente no Watchpoint Monitor, deve-se ir ao menu: - Tools --> Show Data - escolher qual parte se deseja ver. Como acionar a função de trace no teste - O default é Trace Nothing, ou seja, não fará trace algum. Para se acionar o trace deve-se ir ao menu: - Tools --> Trace - Trace All (trace em tudo) ou Trace Points only - Para “setar” alguns pontos de trace (Trace Points only) -- deve-se ir ao menu: - Tools --> Set Testpoints - escolher a(s) partes(s) que se deseja realizar o trace -- clicar em tracepoints on part. -Se Trace All ou Trace Points only foram escolhidos, para se ver o trace realizado, deve-se ir ao menu: - Tools --> Trace - View Trace. O que é a função Test Coverage ? - Nesta função é possível verificar o percentual testado em cada processo, bem como verificar por quais instruções seu teste passou ou não. Para se ativar esta função, deve-se ir ao menu: - Tools --> Test Coverage Casas Bahia Documento Confidencial Página: 34 - Enable Test Coverage. -Deve-se realizar o teste normalmente. Para se verificar o resultado do test coverage, deve-se ir ao menu: - Tools --> Test Coverage - View Test Coverage. - Ao se abrir a estrutura da aplicação presente em Program Hierarchy Monitor aparecerá o percetual de utilização de cada parte da aplicação. Ao se clicar em uma parte, serão mostradas todas as instruções presentes na parte bem como a informação de que o teste contemplou esta instrução ou não. Repository Explorer - Ao se eliminar um project ou package de seu workspace, não significa eliminá-lo do repositório. Se isso realmente for necessário deve-se ir ao menu: - Window (presente no Workbench) - Repository Explorer. - Neste ambiente torna-se possível eliminar do repositório versões de projetos que não estão presentes em seu workspace ou mesmo projetos com edição aberta (open edition) - Esta opção é bastante útil, mas também muito perigosa, portanto deve-se tomar o máximo de cuidado ao se efetuar manutenções diretamente no repositório. STATEMENT TEMPLATES - Esta função é bastante útil quando não sabemos ou não lembramos a sintaxe de um comando. - Para se utilizar esta função deve-se editar uma parte e ir ao menu: - Tools --> Statement Templates - escolher qual categoria se deseja trabalhar escolher o comando dentro da categoria. Casas Bahia Documento Confidencial Página: 34 GERAÇÃO - O processo de geração é separado por aplicação, tabelas e grupo de mapas. Para efetuar a geração: - selecione a aplicação, tabela ou mapa e clique com o botão direito do mouse. - escolha a opção Generate - aparecerá a janela de geração, clique em Generate - Este processo é composto por gerar o código COBOL, transferir os arquivos para o MVS via ftp e submeter o job de compilação. - A transferência é feita para os arquivos de prefixo CSP.V4R1M0.MVSCICS, estes arquivos são deletados e definidos todos os dias. - O job de compilação é submetido com o userid do TSO do usuário do WORKSPACE. BIND - O bind é o acesso das tabelas do usuario do workspace OPERACIONAL - O operacional deverá ser solicitado por aplicação, tabela e grupos de mapas (utilizando a opção mapa do VAGE) TESTE COM PROGRAMAS - CICS - Para testar um programa CICS no Visual Age, o programa deverá ser colocado na LINKAGE (pelo suporte técnico, os programas existentes já estão). Se este programa utilizar db2 deverá ser dando um bind package no CPMI (ex. #E.BINDVAGE). Quando o programa for alteradoé necessário emitir um NEWCOPY no do CICS de teste (opção 7 ou 8). - Na primeira chamada de um programa cics é necessário digitar usuário e senha a Casas Bahia Documento Confidencial Página: 34 mesma da entrada do Visual Age. Palavras reservadas no VisualAge EZERTN Transfere o controle de volta para instrução (de um processo ou grupo) imediatamente seguinte aquela que o chamou. No VisualAge esta função vem seguida com parênteses. Exemplo: MOVE „PESQUISA‟ TO X1AAW02.W02_ST_FASE; EZERTN(); O parênteses podem ser utilizados para passagem de parâmetros. EZECOMIT Chama um serviço que salva o database atualizando os arquivos. No VisualAge esta função vem seguida com parênteses. Antes de dar EZECOMIT na aplicação deve-se dar um EZEREPLY. Exemplo: EZEREPLY = 1; Casas Bahia Documento Confidencial Página: 34 EZECOMIT(); Os parênteses podem ser utilizados para passagem de parâmetros. EZEROLLB Chama um serviço que retrocede as atualizações feitas no database ou recupera arquivos do último commit efetuado. No VisualAge esta função vem seguida com parênteses. Antes de dar EZEROLLB na aplicação deve-se dar um EZEREPLY No VisualAge a sintaxe desta função é conforme o exemplo dado abaixo: Exemplo: EZEREPLY = 1; EZEROLLB(); Os parênteses podem ser utilizados para passagem de parâmetros. Manual Básico de Visual Age Versão: 1.0 user_guide_VisualAge_basico.odt Data: 29/01/13 Via Varejo Documento Confidencial Página: 38 EZEBYTES Retorna o tamanho de um item ou um registro em bytes. Exemplo: EZEREPLY = 0; RESULT = EZEBYTES(RECD1); Existem também palavras reservadas que possuem funções de string. EZESBKT EZESFIND EZESCCWS EZESNULT EZESCMPR EZESSET EZESCNCT EZESTLEN EZESCOPY EZESTOKN EZESCCWS Concatena uma string a outra utilizando um separador de string entre eles. Exemplo: MOVE ‘CLIENT NAME =’ TO PRINT_LINE; RESULT = EZESCCWS(PRINT_LINE, CLIENT_NAME, ‘ ‘); IF RESULT = -1; CALL PRINT_LINE_OVERFLOW; END; EZESCMPR Compara uma substring com outra substring. Exemplo: EZEREPLY = 1; RESULT = EZESCMPR(TARGET,3,2,SOURCE,8,2); EZESCNCT Concatena uma string a outra string. Exemplo: MOVE ‘SALARY = $’ TO PRINT_LINE; RESULT = EZESCNCT(PRINT_LINE, SALARY); IF RESULT = -1; CALL PRINT_LINE_OVERFLOW; Manual Básico de Visual Age Versão: 1.0 user_guide_VisualAge_basico.odt Data: 29/01/13 Via Varejo Documento Confidencial Página: 39 END; EZESCOPY Copia uma substring para outra substring. Exemplo: EZEREPLY = 1; EZESCOPY(COPY_TO,3,6,COPY_FROM,8,6); EZESFIND Encontra a primeira ocorrência de uma string especificada dentro da string. Exemplo: INDEX = 1; EZEREPLY = 1; RESULT = EZESFIND(CLIENT_ADDRESS,INDEX,100,SEARCH_ZIP_CODE); EZESSET Seta cada caracter de uma substring para o mesmo valor do caracter. Exemplo: EZEREPLY = 0; EZESSET(TARGET,12,5,’‘); EZEREPLY O EZEREPLY tem efeito somente em funções VAGen. Especifica quanto um erro de uma função VAGen deverá retornar no campo EZERT8. Se o EZEREPLY está com o conteúdo 1, quando ocorre um erro na função VAGen, este erro estará disponível na função especial EZERT8. A execução continua, não havendo cancelamento Se o EZEREPLY está com o conteúdo 0, quando ocorre um erro na função VAGen, o programa invocado termina com uma mensagem de erro que explica a causa do término anormal e mostra o return code. O valor inicial do EZEREPLY é 0. O EZEREPLY não tem efeito em: EZESBLKT EZESCCWS EZESCNCT EZESTLEN EZECONCT EZEC10 EZEC11 EZECONV Manual Básico de Visual Age Versão: 1.0 user_guide_VisualAge_basico.odt Data: 29/01/13 Via Varejo Documento Confidencial Página: 40 EZEG10 EZEG11 EZEPURGE EZEWAIT Colocar a função EZEREPLY antes das chamadas das funções EZECOMIT e EZEROLLB. EZEFLO => causa a transferência do controle para o nivel da instrução especificada na função principal... function word EZEFLO for “go to” or transfer processing. EZEFLO causes control to transfer to the flow statements specified for the current main function. EZEFEC => Controla se um programa continua a funcionar após um erro grave de de I/O em arquivos,banco de dados ou fila de mensagens. Se EZEFEC está definido para 1 e uma rotina de erro da função foi especificada, a rotina de erro da função é executada quando ocorrer o erro. O programa é responsável por informar o erro para o usuário do programa. (usamos mover 1 para EZEFEC) EZEDTELC => Retorna a data corrente conforme configuração no seu VA. Utilizamos no formato DD.MM.YYYY MOVE EZEDTELC TO S6I5U01.DT_PVEMCR; EZEDTEL => Retorna a data corrente no formato (YYYYMMDD) EZEAID => Esta função é usada para testar as PF's ou PA's utilizadas no mapa exibido. EZECLOS => Imediatamente termina o programa. Se o programa é um programa de chamada, EZECLOS devolve o controle ao programa de chamada. EZECLOS é o fluxo padrão para a última função principal de um programa. EZEAPP => Você pode especificar o nome do programa ou a palavra função especial, EZEAPP. EZEAPP permite alterar dinamicamente a transferência para nome do programa de um programa. DXFR => é projetado para transferir o controle para outro programa para Manual Básico de Visual Age Versão: 1.0 user_guide_VisualAge_basico.odt Data: 29/01/13 Via Varejo Documento Confidencial Página: 41 ambientes que suportam transações, DXFR não pode ser utilizado a partir de um programa de chamada. EZERTN => Retorna para ultima função chamada no VAGEN. EZETST => O valor dessa função é setado com zeros se o resultado procurado retornará “nao encontrado” e caso encontrado retornará o numero do indice do primeiro elemento da matriz que coincide com o valor dos dados. EZEMNO => A tabela de Mensagem é acessada durante o teste e executa quando uma das ocorrencias é verdadeira... EZETIM => EZETIM contains the current system time in the format of HH:MM:SS. EZECNVCM => EZECNVCM é 0 se nonsegmented e 1 se segmentado. O programa pode alterar EZECNVCM a qualquer momento. Quando EZECNVCM é setado igual 1 o EZECOMIT é chamado durante todo o converse. EZESTLEN - Retorna o tamanho de um item desconsiderando espaços e nulos... (considerando que o campo deve ser string (nao numerico). o preenchimento com zeros) O resultado retorna em campo integer... ex.: S1YVW02.LENGTH = EZESTLEN( S1YVU01.DS_MCR); STATEMENTS MOVEA => Move o conteudo de um array para outro ou inicializa os elementos do array. Attribute Description EMPTY - Usado para inicializar os itens de dados dentro do seu registro (brancos para caracteres, zeros para itens de dados numericos) zeros binarios para binarios e itens de dados hexadecimal) - Quando especificado para um mapa, os atributos dos campos não serão modificados...ficará com o ultimo mostrado... Manual Básico de Visual Age Versão: 1.0 user_guide_VisualAge_basico.odt Data: 29/01/13 Via Varejo Documento Confidencial Página: 42 NULL - Setar o indicador de nulo para um item que está contido dentro de uma estrutura SQL e a condição de nulo é verdadeira.. CLEAR- Seta o mapa para o seu estado definido de origem. Os atributos e conteudos para os campos são os valores definidos na origem do mapa. NORMAL - Mostra os dados com normal intensidade, e o campo é setado para desprotegido DEFINED - Exibe os dados com os atributos definidos conforme origem do mapa. MODIFIED - Usado para setar o campo como modificado. Um teste de modified antes do mapa ser exibido nao cria a condiçao verdadeira como resultado deste SET... (somente ao mostrar o mapa) BRIGHT - Exibe o campo do mapa com intensidade de brilho.. DARK - Usado para prevenir que o conteudo do campo nao seja exibido... é usado por razões de segurança por exemplo: senhas. PROTECT - Protege um campo do mapa para não ser modificado. Protect e Autoskip nao deve ser especificado juntos porque o autoskip força o protect.. NUMERIC - Se o itens do mapa do tipo character, podemos testar se verdadeiro o conteudo de caracteres entre 0 ate 9...Numeric nao pode ser usado com palavras reservadas....EZE Manual Básico de Visual Age Versão: 1.0 user_guide_VisualAge_basico.odt Data: 29/01/13 Via Varejo Documento Confidencial Página: 43 CAMPOS INDEXADOS - Os campos indexados utilizados no VisualAge são identificados através de colchetes „[ ]‟. Exemplo: VisualAge M01_ST_OPC[W02_IX] PERFORM - Os „performs‟ existentes no VisualAge são considerados como funções seguidos de parênteses que podem conter ou não passagem de parâmetros. Exemplo: VisualAge X1AAP03(); STATEMENT GROUP - Os statements que são chamados pelas aplicações no VisualAge vem seguidos por parênteses que podem conter ou não passagem de parâmetros. Exemplo: VisualAge SGDATEC(); SQLCODE - Para o sqlcode -911, seu correspondente no VAGen é o -913, mas isto é válido somente para o teste de aplicações não geradas. Ao se gerar a aplicação para o MVS o sqlcode para registro em uso continua sendo o -911, portanto se for necessário efetuar este teste em aplicações não geradas, deve-se perguntar pelo sqlcode -913 também.