Você está na página 1de 35

Iniciar o Studio Dar um clique com o boto da direita do mouse sobre o cubo do Cach Clicar sobre o Studio Selecionar

nar o servidor a ser utilizado na conexo, e o namespace.

Clicar em OK.

Aps a seleo a seguinte tela ser exibida.

Esta a nova tela do Cach Studio. Ela est dividida em 4 reas distintas a saber: Workspace (ALT + 3) Esta rea serve para a visualizao dos projetos, janelas e Namespace, sendo que voc pode manipular rotinas, arquivos CSP e classes. Janela de Inspeo (ALT + 1) Esta rea serve para modificar as propriedades, os mtodos e as caractersticas da classe carregada na rea principal. Janela de Sada (ALT + 2) Esta rea serve para visualizao das mensagens de compilao do projeto. Janela Principal Esta rea serve para visualizao do fonte do objeto que est sendo criado/alterado.

Para criamos uma nova classe devemos selecionar: Arquivo Novo (CTRL + N) A seguinte tela ser exibida:

Selecionar a pasta Geral:

Estaremos exemplificando a seguir o mapeamento de um global (abc) com a seguinte estrutura: ^abc(Nivel1, Nvel 2) = Piece1 / Piece2 (Global Principal) ^abc1(Piece1, Nivel1, Nivel2) = Nulo (Global Invertida) Selecionar Definio de Classe Cach. A seguinte tela inicial sera exibida:

Os seguinte campos sero solicitados: Informe o nome do pacote Por definio usaremos sempre o pacote (Package) User. Digite o nome da classe: Digite o nome da classe seguindo a metodologia do MSQL. Neste caso digitaremos abc Fornea uma descrio para esta nova classe (Opcional): Digite uma breve descrio da classe.

Aps clicarmos em concluir a seguinte tela ser exibida:

Para o mapeamento de globais sempre assumiremos o valor default: Persistente (objetos podem ser armazenados na base de dados)

Aps clicarmos em Concluir a seguinte tela ser exibida:

Os seguintes campos sero selecionados: Owner (opcional) Este campo serve para definirmos o dono da tabela relacional. No nosso caso deixaremos este campo em branco. Nome da Tabela SQL (opcional): Este campo serve para definirmos um novo nome para a classe quando estivermos utilizando a estrutura SQL. Caso nada seja definido o sistema assumira o nome da classe como padro. No nosso caso deixaremos este campo em branco. As demais informaes sero deixadas sem selecionamento.

Ao digitarmos em Concluir a seguinte tela ser exibida:

Observe que ao trabalharmos com uma classe vrios cones so habilitados na nossa barra de ferramentas (segunda linha) que so: Nova Propriedade Novo Mtodo Novo Parmetro Nova Query Novo ndice Nova Chave Estrangeira Novo Armazenamento

Desta forma para efetuarmos o mapeamento do nosso global (abc) devemos agora criar as propriedades (campos do SQL) da nossa nova classe.

Para criarmos uma nova propriedade devemos clicar no cone de nova propriedade. Ao fazermos isto a seguinte tela ser exibida:

Os seguintes campos devero ser preenchidos: Digite o nome desta nova propriedade: Digitar o Nome da propriedade a ser criada. No nosso caso ser Indice1. Escreva a descrio desta nova propriedade (opcional): Digitar uma breve descrio da propriedade.

Ao clicarmos em Concluir a seguinte tela ser exibida:

Os seguintes campos devero ser preenchidos: Um valor do tipo: Para visualizarmos os valores possveis clicar em Procurar. Os valores mais utilizados so os seguintes: %String Para campo do tipo string (Text do MSQL). %Date Para campo do tipo data interna (Date do MSQL). %Integer Para campo numrico inteiro com preciso simples, sem casas decimais. %Float Para campo numrico com preciso estendida, com casas decimais. (DOUBLE). %Numeric Para campos numricos, com ou sem casas decimais de preciso varivel (Number do MSQL). %Time Para campo do tipo hora interna (Time do MSQL). Para campos do tipo referencia designativa (Designative Reference) voce deve selecionar, na pasta %Persistent, atravs do boto Procurar, a classe que ser referenciada. Relacionamento: Para campos do tipo relacionamento caracterstico (Characteristic Relationship do MSQL) devemos selecionar esta opo para que a seguinte tela seja exibida:

Neste caso selecionar a classe a ser referenciada atravs do boto Procurar. No campo O nome da propriedade correspondente na classe referenciada : colocar a propriedade que corresponde ao relacionamento entre as duas classes. Se voc estiver na tabela Pai o relacionamento ser do tipo Children, caso contrario o relacionamento ser do tipo Parent. Neste caso a classe filha dever ter uma propriedade de referencia do pai (Parent Reference) e a classe pai dever ter uma propriedade de referencia para a tabela filha para que o relacionamento possa ser estabelecido corretamente. No nosso caso utilizaremos o valor %String. Ao clicarmos em Concluir a seguinte tela ser exibida:

Os seguintes campos podero ser selecionados: Obrigatria Esta propriedade obrigatria (no pode ser nula) (Required do MSQL). Indexada Ser criado um ndice baseado nesta propriedade. nica (Chave) Ser criado um ndice nico baseado nesta propriedade (Unique Field do MSQL). Calculada Esta propriedade no possui armazenamento alocado em memria (Computed Field do MSQL).

Nome de Campo SQL (opcional): O nome que ser utilizado quando estivermos utilizando a estrutura SQL.

No nosso caso esta propriedade ser obrigatria. Ao digitarmos em concluir a seguinte tela ser exibida:

Os seguinte campos podero ser preenchidos (mais utilizados): CAPTION O nome que ser utilizado pelos Wizards de construo de telas para a WEB, para o Visual Basic, etc. COLLATION O tipo de colao a ser utilizado (ALPHAUP, EXACT). Para propriedades que faro parte da chave primaria, a mesma deve ser sempre EXACT. MAXLEN Tamanho Maximo do campo. MINLEN Tamanho mnimo do campo. DISPLAYLIST / VALUELIST Utilizado para campos do tipo multiple choice do MSQL, onde o DISPLAYLIST corresponde aos valores externos e VALUELIST aos valores internos, os valores devem estar delimitados por virgula. Exemplo: Para um campo do tipo: Sim ou No e obrigatrio teramos DISPLAYLIST Sim,No e VALUELIST S,N. Se o campo no fosse obrigatrio teramos respectivamente: ,Sim,No e ,S,N representando a possibilidade do nulo. SCALE Para campo do tipo numrico, informa a quantidade de casas decimais. FORMAT Para campos do tipo Date e Time, permite informar o formato de data e hora a ser utilizado ( o mesmo valor do MSQL).

Ao digitarmos em Concluir a seguinte tela ser exibida:

No nosso caso no modificaremos os valores default. Ao digitarmos em concluir a seguinte tela ser exibida:

No nosso caso iremos repetir o processo descrito acima para as propriedades Indice2, Piece1 e Piece2. Fechando as janelas 1,2 e 3 temos:

Ao final do processo de cadastramento das propriedades teremos o seguinte resultado:

Em seguida iremos especificar um nico identificador para esta classe atravs da criao de um novo ndice. Para tanto devemos clicar no cone Novo Indice, sendo exibida a seguinte tela:

Os seguintes campos devero ser preenchidos: Selecione um nome para o seu ndice: Digitar o nome do ndice, no nosso caso digite abcIndice. Escreva uma descrio para este novo ndice (opcional): Descreva a funo deste ndice.

Veja o exemplo na tela abaixo:

Ao digitarmos em Concluir a seguinte tela ser exibida:

Para o caso de mapeamento devemos definir este ndice como sendo do tipo IDKEY conforme tela a seguir:

Ao digitarmos em Concluir a seguinte tela ser exibida:

Neste caso deveremos informar quais so os campos que faro parte do nosso OID (Object ID) que corresponde ROWID do MSQL. Para tanto clicar no cone a sua direita logo acima do cone de excluso para que a seguinte tela seja exibida:

Definir as propriedades que compem os ndices do global abc, que so Indice1 e Indice2.

Agora devemos criar uma nova definio de armazenamento para a classe abc (MAP DEFINITION do MSQL), para tanto devemos clicar no cone Novo Armazenamento, sendo exibida a seguinte tela:

Os seguintes campos devero ser preenchidos: Nome do novo armazenamento: Digite o nome do armazenamento, no nosso exemplo ser: abcArmazenamento. Este Digite o tipo de armazenamento a ser utilizado, no nosso exemplo ser: Cach SQL/Mapeado (%CacheSQLStorage). Descrio do armazenamento: Digite uma breve descrio do armazenamento.

Veja exemplo na tela a seguir:

Logo aps voc clicar em Concluir a seguinte tela ser exibida:

Aps estes procedimentos devemos criar o Mapa Mestre (Master Map do MSQL)

Para tanto devemos selecionar storage na janela de inspeo para que a seguinte tela seja exibida:

Selecionar abcArmazenamento (Dar duplo clique) para que a seguinte tela seja exibida:

Selecionar SQL storage map (Duplo clique) para que a seguinte tela seja exibida:

Clicar e adicionar para que a seguinte tela seja exibida:

Preencher o seguinte campo:

Nome do mapa: Digitar o nome do mapa, no nosso caso digite abcMasterMap. Nome do Global: Digitar o nome da global que est sendo mapeada, no nosso caso dever ser ^abc. Se voc estiver mapeando global de outro namespace voc pode utilizar a sintaxe: ^[namespace]global. A prxima tela exemplifica o que foi descrito anteriormente:

A seguir iremos definir os subscritos do global abc, como sendo Indice1 e Indice2, para tanto devemos expandir a estrutura de arvore (+) e clicarmos na pasta Subscritos como mostra a prxima figura.

Clicar em subscritos para que a seguinte tela seja exibida:

Clicar em adicionar para que a seguinte tela seja exibida:

Selecionar na coluna Expression a propriedade Indice1.

Repetir o procedimento para os demais ndices, no nosso caso para o Indice2.

Agora devemos definir o mapa dos dados e para tanto devemos clicar na opo Dados. A seguinte tela ser exibida:

Clicar em adicionar para que a seguinte tela seja exibida:

Selecione o primeiro campo do registro (Piece1) e especifique o delimitador utilizado, conforme vemos na tela a seguir:

Repita o processo para as demais propriedades, no nosso caso Piece2. Ao final clicar em OK.

OBS: O campo Node deve ser utilizado da mesma forma como no MSQL. Para finalizarmos o processo devemos criar o mapeamento para os ndices do global abc. Clicar em adicionar para adicionar um novo mapa, a seguinte tela ser exibida:

Alterar o nome do mapa para abcIndexMap1 e o nome do global para ^abci

Expandir a pasta abcIndexMap1 (+) para que a seguinte tela seja exibida:

Adicionar os subscriptos Piece1, Indice1 e Indice2 conforme telas abaixo:

Clicar em OK para que a seguinte tela seja exibida:

Salvar e compilar a classe, nenhum erro deve aparecer na janela de sada, devendo a tela ser semelhante mostrada a seguir:

Para verificar se a classe est correta executar o seguinte: XXX>s a=##class(abc).%New() XXX>s a.Indice1="Indice 1" XXX>s a.Indice2="Indice 2" XXX>s a.Piece1="Piece 1" XXX>s a.Piece2="Piece 2" XXX>w a.%Save() 1 XXX>w a.%Close() 1 XXX>d ^%G Device: Right margin: 80=>

Global ^abc

^abc("Indice 1","Indice 2")=Piece 1/Piece 2 Global ^abci ^abci("Piece 1","Indice 1","Indice 2")= Global ^ Onde XXX representa o nome do Namespace onde a classe reside. As alteraes da classe aps a criao da mesma deveram ser feitas utilizando-se a janela de inspeo e selecionando dentro da sua lista suspensa o objeto a ser alterado da mesma forma que feito dentro de um projeto do Visual Basic. Em alguns casos como mapeamento (storage) voc pode dar duplo clique na opo para abrir um wizard que permitira a alterao do mesmo. Outra opo disponvel e dar um clique dentro desta janela com o boto direito do mouse, selecionando as opes apresentadas.