Cache Fundamentos
Cache Fundamentos
Cache Fundamentos
Fundamentos
Sumário
1. O que é o Cache?............................................................................................................3
1.1. Características.........................................................................................................3
1.2. Caché Acessibilidade.............................................................................................3
1.3. Componentes Objetos............................................................................................4
1.4. Componentes SQL..................................................................................................4
1.5. Componentes Web..................................................................................................4
1.6. Ferramentas..............................................................................................................5
1.7. Documentação.........................................................................................................6
1.7.1. - Guia de Introdução.......................................................................................6
1.7.2. - Documentação...............................................................................................6
2. COS - Caché Object Script............................................................................................7
2.1. O Uso do Caché ObjectScript...............................................................................7
2.2. Características da Linguagem..............................................................................7
2.3. Regras da Sintaxe do Caché ObjectScript........................................................8
2.3.1. Case-Sensitive..................................................................................................8
2.3.2. Comentários......................................................................................................8
2.4. Tipos de dados.........................................................................................................8
2.5. Operadores e expressões.....................................................................................9
2.6. Comandos...............................................................................................................11
2.6.1. Atribuindo Valores e Excluindo Varíaveis...............................................11
2.6.2. Entrada/Saída: (Leitura e Escrita)..............................................................11
2.6.3. Exercitando Fundamentos no Caché 1....................................................11
2.6.4. Invocar código................................................................................................12
2.6.5. Controle de Fluxo..........................................................................................13
2.6.6. Espera e Termino de Execução..................................................................14
2.6.7. Exercitando Fundamentos no Caché 2....................................................15
2.7. Armazenamento Flexível de Dados...................................................................16
2.8. Acesso Direto à Base de Dados.........................................................................17
2.9. Exercitando Fundamentos no Caché 3............................................................17
2.10 Funções nativas do Caché..................................................................................19
2.11 Exercitando Fundamentos no Caché 4............................................................22
3 Links para estudo..........................................................................................................23
1. O que é o Cache?
1.1. Características
• Web Services
– Interage clientes ou servidores através de aplicações baseados em
SOAP e REST.
1.6. Ferramentas
1.7.2. - Documentação
http://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls
2. COS - Caché Object Script
O Caché ObjectScript – COS – é uma linguagem de programação orientada a
objetos desenvolvida para aplicações de negócios complexas e de rápido
desenvolvimento. Tem como antecessor a linguagem MUMPS.
Possui uma série de aplicações como:
o Na lógica de negócios.
o Na integração de aplicações.
o No processamento de dados.
- Orientação a objetos
2.3.1. Case-Sensitive
2.3.2. Comentários
Strings
Números
Objectos
Globais
Valores indefinidos
Booleanos
Datas
2.5. Operadores e expressões
_ Concatenação “Olá”_”Mundo”
SET a = 1
= Atribuição e teste de igualdade
(2+1) = (1+1)
'> 3 ‘> 4 ou
Menor ou igual que
<=
'<
Maior ou igual que
>=
[ Contém
] Segue
]] Sorts After
&
AND Lógico
&&
!
OR Lógico
||
@ Indireção
Set
o Atribui valores à variáveis.
Ex.: SET tVariavel = 123
SET tString = “nome”
Kill
o Apaga variáveis em memória ou globais
KILL tVariavel
KILL ^global
KILL (tTeste,tTemp)
• Write (escrita)
Executa uma saída no dispositivo corrente
Ex.: WRITE #,!!!,?6,"Alô",!,"Mundo!"
• Read (leitura)
Atribui um valor de entrada a uma variável
Ex.:READ Nome
Do
Chama qualquer rotina, procedure, função ou método em COS
Ex.: DO ^Rotina
DO ##class(Teste).MinhaFuncao(tParametro1, tParametro2)
Goto
Transfere o controle (e não retorna ao ponto de chamada), ou seja, pula
para alguma ponto do código.
Ex.: GOTO ^Rotina
Quit
Termina a execução de um processo iniciado com um comando DO,
XECUTE, FOR ou Retorna de um método ou função
Ex.: QUIT
QUIT result -> Retornando a variável result de um método ou função.
Job
Executa um processo em segundo plano, ou seja, não aguarda a execução
do código invocado para prosseguir. O Código continua sendo executado em
sequência e com o código invocado em paralelo mas em segundo plano.
Ex.: JOB ^ROTINA
JOB ##class(Teste).MinhaFuncao(tParametro1, tParametro2)
Xecute
Executa comandos especificados dentro de variáveis
Ex.: SET a="write Treinamento Confluence" XECUTE a
If/ElseIf/Else
Avalia uma expressão, e então seleciona o bloco de código a ser
executado, baseado no valor verdadeiro desta expressão.
Ex.:
IF var>5 { WRITE "maior" }
ELSEIF var<5 { WRITE "menor" }
ELSE { WRITE "igual" }
While
Executa código enquanto a condição for verdadeira (condição aplicada no
começo de cada repetição)
Ex.:
WHILE tCount < 5
{
WRITE !, “Contador do loop tCount: “ _ tCount
SET tCount = tCount + 1
}
Do While
Executa código enquanto a condição for verdadeira (condição aplicada no
final de cada repetição)
Ex.:
DO
{
WRITE !, “Contador do loop tCount: “ _ tCount
SET tCount = tCount + 1
} WHILE x<5
For
Executa um bloco de código repetidamente, testando-o no começo de cada
loop
FOR var=ValorInicial:Incremento:ValorParada (final)
Ex.:
FOR i=1:1:5
{
WRITE !, “Contador do loop i: “ _ i
Hang
Suspende a execução por um número de segundos especificado
Ex.: HANG 12
Halt
Termina a execução do processo corrente
Ex.: HALT
2.6.7. Exercitando Fundamentos no Caché 2
4.1 Exibir e contar todos os números entre X e Y que, quando divididos por 11,
tenham o valor do resto igual a 5.
4.2 Exibir e contar todos os números múltiplos de 3 entre Y e Z.
4.3 Exibir a soma de todos os números entre X e Z.
2.7. Armazenamento Flexível de Dados
Por exemplo:
(%) - Globais, Rotinas e Pacotes que iniciam com “% ”, indicam que podemos chamá-
los de qualquer namespace, independente de onde estejam. Exemplo:
o Global ^%SYS
o Rotina ^%G
o Pacote %Library
2. Criar rotina para calcular a idade em anos do aluno através da sua data de
nascimento, exibir o resultado ao final.
3. Criar rotina para cadastrar X alunos, a partir do número fornecido pelo usuário,
os dados do aluno devem ser armazenados em um array.
Ex.: tAluno(1, “nome”) = “joão”
tAluno (1, “matricula) = 10
tAluno(1, “telefone) = 1111-1111
Obs.: tAluno(x , “nome_da_propriedade”) = valor
X: Índice número do aluno no array.
nome_da_propriedade: Nome da propriedade
valor = valor que será armazenado para aquele nó da global.
5. Criar rotina para ler cadastro de alunos, enquanto o usuário não finalizar o
processo ao final de cada cadastro.
(Perguntar ao usuário se ele terminou de cadastrar os alunos ao final de cada
iteração).
6. Criar uma rotina para utilizar os dados preenchidos pelos exercícios anteriores
e calcule e exiba:
6.1 A idade média do grupo (utilizar o calculo da idade do item 2)
6.2 A idade média das mulheres.
6.3 A idade média dos homens
6.4 A quantidade de homens e mulheres com idade a cima de 25 anos.
7. Criar uma global para armazenar o resultado de cálculos dos itens 2,3 e 6.
O número do item do exercício corresponde ao índice do array que o calculo
será armazenado.
Ex.: ^minhaGlobal(2) = 30 anos
^minhaGlobal(6,1) = Idade média do grupo é de 27 anos
^minhaGlobal(6,2) = Idade média das mulheres é de 25 anos
Obs.: ^minhaGlobal(X,Y)
X: número do item de exercício.
Y: Número do sub-item do exercício
$Length
o Retorna o número de caracteres ou de delimitadores (+1) em uma string
$ZCONVERT
o Conversão entre formatos de strings
WRITE $ZCONVERT("Confluence","U")
$Find
o Procura uma substring e retorna um inteiro especificando sua posição
final na string. Note que a posição retornada é a posição posterior.
WRITE $FIND("Confluence","flu")
$Extract
WRITE $EXTRACT("Treinamento",6)
WRITE $EXTRACT("Treinamento",1,5)
$Piece
o Retorna uma substring com base no delimitador e no(s) pedaço(s) –
piece(s) – especificado(s).
WRITE $PIECE("01/05/2018","/")
WRITE $PIECE("01/05/2018","/",3)
WRITE $PIECE("01/05/2018","/",1,2)
$Case
o Compara expressões e retorna o valor do primeiro caso coincidente,
equivalente a um controlador de código (IF/ElseIf/Else)
SET x=2
SET res=$CASE(x,1:"simples",2:"duplo",3:"triplo",:"erro de
entrada")
WRITE res
$Translate
o Executa uma troca dos caracteres do segundo argumento para os
caracteres do terceiro. Se não for passado o terceiro argumento, retira
todas as ocorrências do mesmo.
WRITE $TRANSLATE("Xreiyamenzo","xyz","Tnt")
$Horolog
o Uma string separada por virgula que contém dois números, o primeiro
número representa a data e o segundo número a hora, mais
especificamente o primeiro número presenta a quantidade de dia desde
o inicio da contagem do caché (31/12/1840) e o segundo número
representa o número de segundos que se passaram desde a meia-
noite.
WRITE $HOROLOG
$ ZDate
o Função para conversão de data em formato $HOROLOG para formatos
alternativos.
WRITE $ZDATE($HOROLOG,4)
$Get
o Retorna o valor de uma variável especificada. Caso não exista, ao invés
de erro, retorna vazio!
o Se for passado o segundo parâmetro, caso não exista a variável,
retornará o valor especificado.
WRITE xyz
<UNDEFINED>
WRITE $GET(xyz)
WRITE $GET(xyz,"Null")
$Data
o Verifica se uma variável está definida, contém dados e se possui
descendentes.
$Order
o Retorna o primeiro subscrito válido a partir do especificado.
1. Exibir a relação de todos os alunos que o seu nome comece com a letra “A”.
http://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY=TCOS
http://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY=RCOS
Ihttps://www.intersystems.com/wp-content/uploads/sites/7/brochura-Core-Manual-de-
Tecnologia-Cache.pdf