#ObjectScript

1 Seguidor · 128 Postagens

InterSystems ObjectScript é uma linguagem de script que opera com dados, usando qualquer modelo de dados da Plataforma de Dados InterSystems (Objetos, Relacionais, Chave-valor, Documentos, Globais) e, desenvolve a lógica de negócios para aplicações de servidor na Plataforma de Dados InterSystems.

Documentação.

Artigo Heloisa Paiva · Jun. 17, 2024 5m read

image

Olá Comunidade

Nesse artigo, vou introduzir minha aplicação irisChatGPT construída no LangChain Framework.

Primeiramente, vamos ter uma breve visão geral desse framework.
O mundo inteiro está falando sobre o ChatGPT e como as Large Language Models (LLMs - Grandes modelos de linguagem) se tornaram tão poderosas e tem performado além das expectativas, oferecendo conversas quase humanas. Isso é só o começo de como isso pode ser aplicado em qualquer empresa e qualquer domínio!

0
0 268
Artigo Heloisa Paiva · Jun. 12, 2024 4m read

Olá a todos! 

Trabalho há muitos anos com Excel e, ultimamente, foquei no tratamento de bases de dados.

Realmente minha experiencia com Excel foi para trabalhos financeiros, não tanto analíticos de dados em si, mas em um projeto recente pude trabalhar muito com SQL e me interessei um pouco pelo tema (não sou nenhuma uma especialista, já aviso!)

Me perguntei como poderia unir vários excels em um para, por exemplo, entregá-lo à Análise de dados utilizando a tecnologia InterSystems. Juntei toda a informação em um pequeno artigo. Espero que seja útil e, é claro, estou aberta a correções.

Vamos

0
0 73
Artigo Heloisa Paiva · Jun. 11, 2024 3m read

Traduzido do Concurso de Artigos da Comunidade Espanhola 

Seguindo o último concurso de programação no OEX (Open EXchange) eu tive algumas observações surpreendentes.
Havia aplicações quase exclusivas baseadas numa combinação de IA (Inteligência Artificial) com módulos Python "pré-cozidas".
Porém, indo mais a fundo, todos os exemplos usaram os mesmos fatores técnicos do IRIS.

Considerando o ponto de vista do IRIS, foi praticamente a mesma coisa seja buscando por textos, ou imagens, ou outro tipo de padrão. Acabou em métodos quase intercambiáveis.

Isso me lembra de uma situação privada na minha

0
0 49
Anúncio Heloisa Paiva · Maio 6, 2024

O Visual Studio Code lança novas atualizações todo mês com novos recursos e correção de bugs, e o lançamento de Abril 2024 já está disponível.

0
0 544
Artigo Danusa Calixto · Abr. 4, 2024 3m read

Olá, Desenvolvedores!

Suponha que você tenha uma classe persistente com dados e queira ter uma IU Angular simples para visualizar os dados e fazer operações CRUD.

Recentemente, @Alberto Fuentes descreveu como desenvolver uma IU Angular para seu aplicativo do InterSystems IRIS usando RESTForms2. 

Neste artigo, quero explicar a você como obter uma IU Angular simples para fazer operações CRUD e visualizar seus dados de classes do InterSystems IRIS automaticamente em menos de 5 minutos.

Vamos lá!

0
0 103
Artigo Heloisa Paiva · Mar. 15, 2024 6m read

Introdução

Nas próximas semanas, meus colegas de trabalho estão planejando começar a usar VSCode para programar com os produtos InterSystems. Entre as várias vantagens disso, eu gostaria de salientar a possibilidade de se conectar com outras tecnologias, como o GitHub, com facilidade. Além disso, o VSCode também oferece uma extensa loja de extensões, onde você pode achar vários recursos adicionais gratuitos que fazem a programação mais rápida e eficiente. Por último e não menos importante, para conquistar os corações de todo desenvolvedor, é Open Source.

Tendo isso dito, vamos começar o

0
0 215
Pergunta Daniela R · Mar. 11, 2024

Olá a todos!

Estou com o seguinte problema

Em uma rotina chamei o método da seguinte forma:

;
;
;
write !, "Informe uma palavra ou frase para verificar: "
;
read str
;
set sc = $$ValidarPalindromo^YYHORG001(str)
;
;
write !, sc
;
quit

Método da classe YYHORG001

Method ValidarPalindromo(string)
{
set textoOriginal = $zconvert(string, "l")
set textoOriginalLimpo = $translate($translate(textoOriginal, " "), ".,;:?!\'", "")
set textoInvertidoLimpo = $translate($translate($zconvert($reverse(string), "l"), " "), ".,;:?!\'", "")
;
;
if textoInvertidoLimpo = textoOriginalLimpo {
;write !, textoInvertidoLimpo,
;!,

5
0 115
Pergunta Daniela R · Mar. 7, 2024

Preciso fazer  o seguinte exercício:

"Crie uma regra/método que solicite 10 números ao usuário e no final apresente-os em tela, ordenados do menor para o maior."

Porém já li e reli a documentação, e não consigo entender como criar regra/método no Caché.

Eu crio conforme a doc, mas não executa nada quando chamo a rotina no terminal.

Alguém pode me ajudar por favor?

Tentei function, procedure e subroutine também.

7
0 100
Anúncio Danusa Calixto · Fev. 21, 2024

Recentemente, percebi que já faz muito tempo que não falo sobre os recursos mais recentes da extensão ObjectScript da InterSystems para Visual Studio Code.

Tenho o prazer de anunciar a versão 2.12.1 da extensão ObjectScript, contendo diversas melhorias que facilitam a vida do desenvolvedor. Alguns destaques são descritos abaixo, incluindo o recurso nº 1 solicitado pelo Global Summit – importação de XML!

Como sempre, encontre a lista completa de modificações no CHANGELOG, incluindo muitas correções de bugs e vulnerabilidades.

 

Interface do usuário mais limpa 

A interface do usuário para a extensão

0
0 121
Artigo Danusa Calixto · Fev. 9, 2024 13m read

Talvez você não perceba isso, mas sua conta de login da InterSystems pode ser usada para acessar uma ampla variedade de serviços da InterSystems que ajudam você a aprender e usar o InterSystems IRIS e outras tecnologias da InterSystems de maneira mais eficaz.  Continue lendo para saber mais sobre como descobrir novos conhecimentos técnicos e ferramentas usando sua conta de login da InterSystems.  Além disso, após a leitura, participe da Enquete na parte inferior, para que possamos ver como este artigo foi útil para você!

O que é uma conta de login da InterSystems? 

Uma conta de login da

0
0 159
Artigo Danusa Calixto · jan 11, 2024 3m read

Sejam todos bem-vindos!

Neste breve artigo, quero apresentar um exemplo de uso que vários de vocês que trabalham com o IRIS como back-end para seus web applications devem ter enfrentado mais de uma vez: como enviar um arquivo do front-end para o servidor.

Em geral, a maneira mais simples que encontrei de realizar essa tarefa é transformar o arquivo do front-end para o formato Base64 e fazer uma chamada POST para o servidor anexando o Base64 obtido a uma mensagem JSON onde é indicado o nome do arquivo em um parâmetro e os dados codificados em outro. Algo parecido com isto:

{
    "fileData": "JVBER
0
0 159
Artigo Danusa Calixto · jan 10, 2024 12m read

Temos um delicioso conjunto de dados com receitas escritas por vários usuários do Reddit, porém, a maioria das informações é texto livre, como o título ou a descrição de um post. Vamos descobrir como carregar o conjunto de dados facilmente, extrair algumas características e analisá-las usando recursos do modelo de linguagem grande da OpenAI no Embedded Python e no framework Langchain.

Carregando o conjunto de dados

Primeiro de tudo, precisamos carregar o conjunto de dados ou podemos só nos conectar a ele?

Há diferentes maneiras de alcançar isso: por exemplo, é possível usar o CSV Record Mapper em

0
0 114
Artigo Danusa Calixto · Dez. 6, 2023 2m read

Com certeza, você já se deparou com esta situação:

  • Há um bug em um Sistema que você não consegue reproduzir localmente
  • Você precisa executar algumas linhas na instância afetada
  • Você ganha acesso completo ao Portal de Gerenciamento de Sistemas
  • Mas não há terminal, console nem acesso com o Studio, Atelier ou VSCode
  • Como executar algumas linhas para teste ???
0
0 84
Artigo Danusa Calixto · Dez. 4, 2023 1m read

InterSystems FAQ

Ao executar comandos do sistema operacional, use $ZF(-100).

do$ZF(-100,"",program,args) // Execute the Windows command [synchronously].
do$ZF(-100,"/ASYNC",program,args) // Executes a Windows command [asynchronously].

Ao executar comandos do shell do sistema operacional, como mkdir e copy, especifique também /SHELL.

do$zf(-100,"/shell /async","mkdir","c:\temp\x")

Consulte os seguintes documentos para obter detalhes:

Sobre $ZF(-100) [IRIS]
Sobre $ZF(-100)

0
0 92
Anúncio Danusa Calixto · Nov. 29, 2023

Olá Comunidade,

Sabemos que você está esperando ansiosamente esse momento há um ano inteiro (e até recebemos mensagens perguntando se isso está acontecendo 😉)... Bom, o momento chegou!

Junte-se ao Advent of Code 2023 com a InterSystems e participe de nosso concurso de ObjectScript para ter a chance de ganhar prêmios fabulosos!


0
0 76
Artigo Danusa Calixto · Nov. 27, 2023 3m read

Oi, pessoal,

Publiquei um novo pacote no OEX.

Resumindo, é um tipo de dados de string que oferece várias opções de configuração e flexibilidade.

Caso de negócio

  1. Você tem algumas classes de bibliotecas e outras estruturas reutilizáveis que usa em vários sistemas.
  2. Você tem um ambiente "multi-tenant" em que uma base de código é compartilhada entre vários inquilinos, sendo que cada um tem seu próprio namespace configurado.
    1. Regras específicas e processos de negócios são armazenados no namespace desse inquilino.
    2. As estruturas de classes principais são as mesmas.
    3. Os inquilinos têm diferentes
0
0 84
Artigo Danusa Calixto · Set. 1, 2023 3m read

Olá, desenvolvedores. No momento, estou realizando uma demonstração sobre o desenvolvimento de uma IU front-end fazendo análise de dados e configurando um teste de desempenho com grandes objetos de dados. Portanto, o uso do utilitário Populate pode me ajudar a gerar automaticamente alguns dados de amostra com que eu possa brincar.

Neste post, gostaria de compartilhar minha experiência ao usar o utilitário Populate, incluindo o parâmetro POPSPEC.

  1. No início, criei 2 classes persistentes para o suporte do utilitário Populate ( Extends (%Persistent, %Populate)): popPatient que busca preencher as
0
0 116
Artigo Danusa Calixto · Set. 1, 2023 2m read

Peço desculpas se isso for óbvio para programadores Python, mas, para aqueles que estão saindo do ObjectScript, esta pode ser uma dica útil.

O cenário é o desenvolvimento de alguns comandos do Embedded Python.

Testando se a funcionalidade está sendo confirmada pelo shell:

$SYSTEM.Python.Shell()
 
Python 3.9.5 (default, Mar 14 2023, 06:58:44) [MSC v.1927 64 bit (AMD64)] on win32
Type quit() or Ctrl-D to exit this shell.
>>>

Quando o Python avalia uma expressão no shell, ele imprime o resultado da expressão no terminal.

>>> 1 + 2

3

É bastante fácil avaliar e imprimir valores sem querer

>>> iris.cls("%
0
0 47
Artigo Danusa Calixto · Set. 1, 2023 4m read

Visão geral

Com o cross-skilling do objectScript do IRIS para o Python, ficam claras algumas diferenças fascinantes na sintaxe.

Uma dessas áreas é como o Python retorna Tuplas de um método com desempacotamento automático.

Efetivamente, isso se apresenta como um método que retorna vários valores. Que invenção incrível :)

out1, out2 = some_function(in1, in2)

O ObjectScript tem uma abordagem diferente com o ByRef e os parâmetros de saída.

Do ##class(some_class).SomeMethod(.inAndOut1, in2, .out2)

Onde:

  • inAndOut1 é o ByRef
  • out2 é a saída

O ponto à esquerda (".") na frente do nome da variável passa o

0
0 74
Artigo Flávio Lúcio Naves Júnior · Ago. 16, 2023 3m read

Como observado no artigo anterior, a Native API possui algumas limitações.
Portanto, fiz algumas pesquisas sobre uma interface mais semelhante a um terminal que me forneça acesso como um console ou o terminal IRIS para permitir meu $QUERY em um global e outros comandos úteis que não são suportados/mapeados na NativeAPI para ObjectScript.

As ferramentas básicas estão bem preparadas e disponíveis.

  • Connection() cria uma partição totalmente operacional e estável para mim.
  • Function() permite chamar qualquer rotina ou método de que eu preciso.
  • similar a ClassMethodValue e ClassMethodVoid

Apenas

2
0 79
Artigo Flávio Lúcio Naves Júnior · Ago. 16, 2023 3m read

Esta pergunta originalmente apareceu nos comentários do post:Download globals from a particular server

Este artigo foi inspirado por uma pergunta recente feita por @Evgeny.Shvarov.
Download globals from a particular server
Não se trata de um código de "clique e execute", mas sim de um rascunho que requer ajustes para atender às suas necessidades específicas. Você precisa adicionar...

  • suas credenciais de acesso ao servidor,
  • seu tratamento de erros
  • nome da Global
  • o primeiro conjunto de subscritos como %LB() valor padrão do bloco=""
  • o último conjunto de subscritos como %LB() valor padrão do
1
0 75
Artigo Danusa Calixto · Ago. 7, 2023 1m read

InterSystems FAQ

Se o valor de uma variável local é um OREF ou não, pode ser determinado usando $IsObject(). Seja v a variável que você deseja verificar,

$IsObject(v)=1// v is an OREF$IsObject(v)=0// v is not an OREF$IsObject(v)=-1// v is an OREF but does not point to a valid object

Observe que $IsObject(v) dará um erro UNDEFINED se v for indefinido.

Para evitar erros UNDEFINED, é recomendado o uso do $Get assim:

$IsObject($Get(v))
0
0 108
Artigo Miqueias Santos · Maio 17, 2023 30m read

Veremos a seguir como o InterSystems IRIS aliado com Machine Learning pode transformar para melhor a educação do Brasil e do mundo

image

. .

O video de apresentação:

Clique na imagem abaixo para ver o video de apresentação. [![Video de Apresentação](https://img.youtube.com/vi/QOY60kRkSnQ/maxresdefault.jpg)](https://www.youtube.com/watch?v=QOY60kRkSnQ) . .

Educação Integrada com InterSystems IRIS

A ideia é integrar a educação usando InterSystems IRIS para permitir a criação de uma plataforma completa para gestão, análise, melhoria e transformação da educação.

6
2 341
Artigo Henrique Dias · Jun. 10, 2023 9m read

20 anos. 

Agora em 2023 eu completo 20 anos trabalhando com tecnologia, desenvolvendo sistemas, implementando, criando novas soluções e posso afirmar que trabalhar com tecnologia InterSystems fez e faz parte da minha vida. Afinal, foram 18 anos trabalhando todos os dias com essa tecnologia.

Comecei a trabalhar com o Caché 4, lá atrás em 2003, vivenciei as mudanças para o Caché 5, Caché e Ensemble 2008, 2010, 2012, 2014, 2017, 2018 e até finalmente chegarmos no InterSystems IRIS. 

A evolução da plataforma é algo notável e sempre trouxe mais robustez, flexibilidade e estabilidade para nós

4
0 219
Artigo Miqueias Santos · Jun. 10, 2023 6m read

Olá!

Eu estava querendo dedicar algum tempo para implementar alguma DLL ou algo que eu pudesse usar do Caché e finalmente tive uma pequena ideia, se você está interessado em poder produzir mensagens que são enviadas para o Kafka rapidamente, você é no lugar certo ;-)

Antes de lhe entregar a ficha com o que vamos ver, vou fazer um resumo para que você decida se tem interesse em ler o artigo.

Neste artigo vamos focar "apenas" na parte de produzir mensagens e enviá-las para Kafka:

Como funciona?

Utilizo uma DLL .Net (Netframework 4.5) que fiz (está dentro da pasta dll do repositório)

Depois através

0
0 288
Artigo Miqueias Santos · Jun. 7, 2023 4m read

Quando você compila rotinas ou classes no terminal, os resultados da compilação são exibidos na tela, portanto, mesmo que ocorra um erro, é fácil verificar.Se você deseja obter apenas informações de erro, precisa planejar um pouco.

O seguinte descreve como obter informações de erro do resultado da compilação em lote de rotinas/classes.

para rotinas

Para rotinas de compilação em massa em um namespace no Terminal, o método CompileAll() da classe %Library.Routine. use

O exemplo de execução a seguir é o resultado de rotinas de compilação em lote no namespace USER.

0
0 118
InterSystems Oficial Danusa Calixto · Maio 9, 2023 2m read

Queria avisar sobre uma melhoria na forma como geramos e chamamos o código de método no IRIS 2023.1.

Uma classe no IRIS é composta de dois componentes de tempo de execução principais:

  1. Descritor de classe - Uma lista altamente otimizada de parâmetros de classe, métodos e propriedades que compõem a classe junto com os atributos associados a cada um deles, por exemplo, ambiente público/privado.
  2. Código ObjectScript - Um grupo de rotinas que contém o código ObjectScript a ser executado quando um método é chamado.

Quando você chama um método de uma classe/objeto, o código dispatch procura o método

0
0 67
Artigo Danusa Calixto · Maio 2, 2023 3m read

Oi, pessoal!  

Neste artigo, quero revisar as extensões do VS Code que uso para trabalhar com a InterSystems e que facilitam muito meu trabalho. Tenho certeza de que este artigo será útil para quem está apenas começando a jornada de aprendizado das tecnologias da InterSystems. No entanto, também espero que este artigo seja útil para desenvolvedores com vários anos de experiências e abra novas possibilidades de uso do VS Code para desenvolvimento.

Recomendo que todo mundo que trabalhe com a InterSystems tenha essas extensões instaladas e, neste artigo, quero mostrar como usar algumas delas.

Você

0
0 321
Artigo Danusa Calixto · Maio 2, 2023 26m read

Resumo

O que é Query

Query é um método para encontrar dados que atendem às condições e apresentar os resultados como um conjunto de dados.

Tipo de Query

  • SQL Query,Usando %SQLQuery e SQL SELECT.
  • Custom Query,Usando a classe %Query e lógica personalizada para gerar resultados.

Observação: antes de falar sobre a solução de Query geral, vamos primeiro entender os fundamentos da Query para compreender os princípios da implementação. Se você já conhece o uso básico da Query, pule esta seção e vá direto para "Desafios".

Fundamentos da Query

Fundamentos do SQL Query

Query QueryPersonByName(name As
0
0 101