COS – Caché Object Script

Neste artigo, abordarei os principais tópicos do COS (linguagem interna do Caché). Segundo a documentação do Caché Database, o COS é uma linguagem de programação desenvolvida para trabalhar com objetos, tendo como principal característica o rápido desenvolvimento de aplicações de negócio complexas. Suporta uma variedade de aplicações como: Lógica de Negócios, Integração de Aplicações e Processamento de Dados.

A minha definição pessoal (passível de críticas) é que o COS é uma linguagem “faz tudo” em se tratando de Caché Database. Ela está presente desde a configuração, passando pela administração até o desenvolvimento propriamente dito. É quase impossível trabalhar com o Caché sem utilizar o COS. Abaixo veremos alguns pontos de básicos, mas essenciais para quem vai utilizá-la.

PRINCIPAIS COMANDOS:

. SET – Atribuição de valor a uma variável em memória, a uma variável global ou a uma propriedade da instância de classe. Este comando é utilizado tanto em Rotinas (Estrutura Multidimensional ou Relacional) quanto em Classes (Orientação a Objetos). Também é comum utilizá-lo diretamente no Caché Terminal.

Exemplos:

SET a=1
SET a=1,b=2,c=3
SET (a,b,c)=1
SET (a,b)=1,c=2,(d,e,f)=3
SET p=##class(Cadastro.Pessoa).%New()

. DO – Chamar uma Rotina ou método de uma Classe. Este comando é bastante utilizado por Administradores Caché para chamar Rotinas de administração como: ^JOBEXAM, ^BACKUP, ^JOURNAL, ... Quando utilizado para chamar um método em uma classe, ele executa o código do método, mas não mostrará o seu retorno (passado com o comando QUIT) em tela.

Exemplos:

DO ^Rotina
DO Label^Rotina
DO ##class(Cadastro.Pessoa).%OpenId(1345)
DO p.Imprimir()

. WRITE – Mostra saída no dispositivo que foi selecionado. Se estiver utilizando o comando no Caché Terminal, ele fará a impressão em tela. Caso algum dispositivo esteja aberto (impressoras, arquivos texto, etc...), ele mostrará no dispositivo. Este comando também é uma alternativa ao comando DO principalmente em ambiente de Desenvolvimento Orientado a Objetos, pois mostrará o retorno de um método, facilitando e muito a depuração.

Exemplos:

WRITE a
WRITE "Código do Cliente é ",cod
WRITE "Nome do Cliente é ", p.Nome
WRITE p.%Save()

. KILL – Exclui variáveis locais ou globais. Se passado argumento, ele excluirá o conteúdo do que foi passado. Se executado o comando sem argumentos, ele excluirá todas as variáveis locais do processo que o executou.

IMPORTANTE: No caso da exclusão de um sub-nível de alguma global (veja artigo: //www.devmedia.com.br/articles/viewcomp.asp?comp=3171) serão excluídos todos os níveis abaixo deste.

Exemplos:

KILL a
KILL a,b,c
KILL ^global(1,"dois",3)
KILL p
KILL

Com estes quatro comandos, já se pode acessar muitas funcionalidades do Caché. Se quiserem treinar ou até mesmo ver na prática como isso funciona, abram o Caché Terminal e nele utilizem o comando SET para criar algumas variáveis de memória conforme os exemplos. Depois, com o comando WRITE, mostre as mesmas variáveis na tela, também conforme os exemplos. E então exclua essas variáveis com o comando KILL. Para ver como o comando DO funciona, execute: DO ^%SS. Esta é uma das rotinas administrativas que mostra todos os processos do Caché Server.

Abraço a todos e até o próximo artigo.