查找

記事
· 6 hr 前 6m read

Integração com Git para o Iniciante Absoluto: Boas Práticas de Controle de Origem com o IRIS através do VSCode

Sumário

  1. Introdução
  2. Controle de Versão
  3. Exportando Classes
  4. Exportando Classes de BI Analytics
  5. Exportando Globals

Introdução

Neste artigo, cobriremos um início rápido para o desenvolvimento com Git na Comunidade de Desenvolvedores InterSystems e as práticas de controle de versão ao trabalhar com IRIS InterSystems. Abordaremos cenários em que precisamos exportar classes de Interoperabilidade, globals e elementos de analytics, como cubos e dashboards. Esses cenários englobam as principais práticas de controle de versão com o IRIS.

Para começar, você precisará:

  1. Registrar-se e fazer login no GitHub
  2. Ser um membro da organização intersystems-community no Git.

Começar com o IRIS InterSystems é muito simples!

O controle de versão com IRIS não é fundamentalmente diferente de qualquer outro projeto. Fazemos alterações nos arquivos e as enviamos (commit) para o repositório. Com o IRIS InterSystems, as alterações feitas dentro do IRIS não são exportadas para o sistema de arquivos externo automaticamente; precisamos de ferramentas especializadas para isso.

Vamos começar criando um repositório e enviando seu código para ele.

Acesse github.com e crie um repositório vazio. Você será solicitado a nomeá-lo, selecionar as configurações de privacidade e usar o template intersystems-community/iris-interoperability-template (isso é possível se você fizer parte da organização InterSystems Community).

Este template contém tudo o que você precisa para começar rapidamente com o IRIS e seus sistemas centrais: classes de interoperabilidade, globals e classes de dados para trabalhar com analytics.

Após preencher os campos, clique em Create repository.

 

Pronto! Agora temos um repositório. Em seguida, basta cloná-lo em seu disco rígido, construir um container Docker com a imagem do IRIS e começar a codar.

Clone o repositório nos seus arquivos.

.Abra o Visual Studio Code, navegue até o diretório e execute os comandos para construir o projeto:

Em seguida, construímos (build) o projeto:

docker compose build - -no-cache - -progress=plain

E, em seguida:

docker compose up -d

A instalação e o lançamento do seu projeto estão concluídos

Controle de Versão

Para enviar as alterações do seu projeto ao repositório, você precisa retirá-las do container e colocá-las no diretório de trabalho. Para rastrear alterações no IRIS, use o aplicativo git-source-control Ele permite monitorar o estado dos arquivos dentro do sistema de arquivos do IRIS sem configuração adicional e checar a cada mudança.

Nosso template já possui o pacote git-source-control pré-instalado, então podemos ver como funciona e focar no controle de versão. O pacote está no arquivo iris.cls. Note as seguintes linhas:

zpm "install git-source-control"
do ##class(%Studio.SourceControl.Interface).SourceControlClassSet("SourceControl.Git.Extension")


A primeira linha instala o aplicativo a partir do Gerenciador de Pacotes InterSystems (InterSystems Package Manager) ou IMP (ex: ZPM). A segunda linha define a classe do aplicativo git-source-control: "SourceControl.Git.Extension" como um argumento para a classe de sistema %Studio.SourceControl.Interface, o que permite que o VSCode se comunique com a classe de controle de origem. Esta configuração é feita ao construir o contêiner no Dockerfile ou installer.cls, ou, neste caso, no iris.cls.

Exportando classes.

Agora vamos tentar fazer algumas alterações em nosso código e ver o que acontece. Criaremos um cubo de dados para uma das tabelas fornecidas neste template. Para fazer isso, habilite o analytics para o namespace atual executando o seguinte comando no console:

do EnableDeepSee^%SYS.cspServer("/csp/USER/")

Depois disso, acessamos o endereço Management Portal -> Analytics -> Architect e veremos esta janela:

 

Clique em New (Novo) e preencha os campos no formulário para criar um novo cubo. Para o nosso cubo, usaremos o modelo de dados dc.Demo.PostMessages.

 

Este é aproximadamente o resultado que você deve obter:

 

Em seguida, salvamos e compilamos o novo cubo.

 
Vamos voltar ao VSCode e ver o que mudou.

O novo cubo é carregado para o sistema de arquivos exatamente como o criamos! É simples assim. A seguir, modificaremos uma das classes de produção de negócio.

Acesse o IRIS e navegue até Management Portal -> Interoperability -> Configure -> Production. Lá, veremos o processo de negócio dc.Demo.RedditService em execução.

Vamos fazer uma alteração na definição da classe dc.Demo.RedditService e atribuir a ela uma categoria. Em seguida, clique em Apply (Aplicar).

 
Voltamos ao VSCode e vemos que a classe do processo de negócio já foi carregada para o nosso sistema de arquivos e contém todas as alterações feitas



 

Agora, tudo o que temos que fazer é colocar as classes nos diretórios apropriados e enviá-las (commit) para o repositório.

Exportando classes de BI Analytics

A seguir, veremos outro método para exportar arquivos usando elementos de análise de negócios (business analytics) como exemplo. Lembre-se do cubo de dados que criamos com base nas mensagens do Reddit. Vamos criar um pivot e um dashboard para visualizar os dados e tentar exportá-los .Para fazer isso, acesse o IRIS e navegue até Analytics -> Analyzer. Aqui, temos o cubo de dados RedditMessages selecionado e a medida básica Count.

Arraste a medida para o campo Measures e salve o pivot resultante como Reddit Messages Amount.

 
Em seguida, vamos criar um dashboard para exibir o pivot resultante. Vá para Management Portal -> User Portal. Na janela que se abre, clique no sinal de mais (+) e selecione Add Dashboard.

 
Preencha o nome do dashboard e clique em OK.

 

Em seguida, adicione o widget criado anteriormente ao dashboard e clique em OK.

 

Pronto! Muito simples. Começamos a desenvolver o analytics. Agora precisamos exportar esses elementos. Infelizmente, a versão atual do IRIS e do Git-Source-Control não permite rastrear alterações em classes de analytics automaticamente, mas temos outra ferramenta conveniente para essa tarefa.

Usaremos o iris-bi-utils. Este é um conjunto de utilitários para exportar ou importar quaisquer classes do IRIS para o seu sistema de arquivos. A principal diferença em relação ao Git-Source-Control é que este último rastreia automaticamente as alterações das classes, enquanto o iris-bi-utils exporta as classes manualmente. Usando o aplicativo iris-bi-utils, você pode baixar quaisquer classes e elementos contidos no IRIS.

Então, vamos começar instalando o iris-bi-utils no seu IRIS.

Execute o comando no console:

zpm "install iris-bi-utils"

 

Em seguida, executamos o comando para definir o diretório raiz do projeto para armazenar os objetos:
​​

do ##class(BIInstruments.utils).workdir("/home/irisowner/dev/")

Os comandos a seguir exportam o pivot e o dashboard desejados. Observe a sintaxe da classe exportada. O nome do elemento deve ser seguido por sua categoria e tipo: .pivot.DFI para o pivot e .dashboard.DFI para o dashboard.

do ##class(BIInstruments.export).export("Reddit Messages Amount.pivot.DFI")
do ##class(BIInstruments.export).export("Reddit overview.dashboard.DFI")

Os arquivos serão exportados para o diretório /dfi. É aqui que as classes de bi analytics são armazenadas.

Nós também as colocamos no diretório apropriado e enviamos as alterações para o repositório.

Exportando globals.

Como regra, não precisamos enviar globals para o repositório durante o desenvolvimento. Muitas vezes, dados sensíveis são armazenados lá, ou o tamanho do global é grande demais. No entanto, se necessário, eles sempre podem ser exportados para um sistema de arquivos externo e enviados ao Git usando este método da classe %Library.Global:

do ##class(%Library.Global).Export("NAMESPACE", "global.name, global.name1,....", “/path/and/outputFileName”)

Isso também pode ser feito através do Portal de Administração. Para isso, vá em Management Portal -> System Explorer -> Globals. Selecione o global desejado e clique em Export. A interface possui uma função de busca conveniente. A exportação é possível para o sistema de arquivos ou para o navegador.
Ao ser exportado, o global pode ser codificado usando diversas variantes das mais comuns.


 
 

Isso é tudo! Neste artigo, criamos um repositório, vimos maneiras de exportar classes de negócio, analytics e globals, e enviamos as alterações para o repositório Git.

Links úteis para este artigo:

ディスカッション (0)1
続けるにはログインするか新規登録を行ってください
お知らせ
· 6 hr 前

2025 in Review - Celebrate Your Year with Developer Community!

Hello Community,

✨ As we wrap up another incredible year on the Developer Community, it’s time to look back at everything you accomplished in 2025! Your personal 2025 Recap is now live — a tailored snapshot of your activity, milestones, and the value you brought to the community this year.

From the articles you shared to the discussions you sparked, your contributions helped shape the knowledge and collaboration on our platform. Now you can revisit all of it in one place!

What’s inside your 2025 Recap? A personalised overview of your year, including:

  • Your posts, comments, and views
  • Your favourite tag
  • Your standout contribution
  • And a few fun highlights we’ve prepared just for you!

To open your recap, simply head to the main page and click "View my Recap". Or open your profile.

Once you're there, you’ll find a beautifully formatted summary you can easily share with colleagues, friends, or on your favorite social networks, showing off the impact you made throughout the year. To share your recap with others, just click Share in the bottom right corner:

We’d love to learn which club you belong to! Feel free to share in the comments which highlights surprised you the most.

Let’s celebrate the knowledge, innovation, and collaboration you brought to the community in 2025. Here’s to another amazing year ahead!

ディスカッション (0)2
続けるにはログインするか新規登録を行ってください
質問
· 6 hr 前

Using EnsLib.SQL.Service.GenericService to query local tables

I want to extract data from IRIS (Health Share Provider Directory) and write the data out to a file that I can use within an external system. Using EnsLib.SQL.Service.GenericService do I need to supply Credentials if I am querying IRIS locally? I have always used JDBC to connect externally when creating Services and Operations to read/write SQL data from external Databases, but never internally. Normally I would just use sql or code to pull the data within a Process or DTC. But in this case, I want the Service to drive the workflow, and query the data from Local Tables

1件の新着コメント
ディスカッション (1)2
続けるにはログインするか新規登録を行ってください
お知らせ
· 7 hr 前

Construyendo flujos de integración de forma sencilla con InterSystems IRIS

🚀 Un ejemplo práctico integrando REST, CSV, bases de datos y servicios SOAP

En el día a día de cualquier organización, la información fluye entre aplicaciones, servicios y sistemas muy distintos entre sí. Integrarlos de forma eficiente puede ser un reto... a menos que uses InterSystems IRIS.

En este nuevo vídeo te muestro cómo construir un flujo completo de integración combinando múltiples tecnologías —APIs REST, ficheros CSV, bases de datos y servicios SOAP— todo dentro del entorno visual que ofrece el motor de interoperabilidad de IRIS.

👉 Puedes ver el vídeo aquí:

https://www.youtube.com/embed/82xA51nThqQ?si=CzRfwyLSwcKvOGGH
[これは埋め込みリンクですが、あなたはサイト上の埋め込みコンテンツへのアクセスに必要な Cookie を拒否しているため、それを直接表示することはできません。埋め込みコンテンツを表示するには、Cookie 設定ですべての Cookie を受け入れる必要があります。]

ディスカッション (0)1
続けるにはログインするか新規登録を行ってください
質問
· 7 hr 前

##class(Ens.MessageHeader).ResendDuplicatedMessage()

Using a Workflow Task within HealthShare Provider Directory, when a user clicks on Resubmit message within my Business Process, I check the status of the response. If the response is "Resend Message", I have my Business Process executing the following...


 set tSC = ##class(Ens.MessageHeader).ResendDuplicatedMessage(context.SessionID)
 if $$$ISERR(tSC) $$$LOGSTATUS(tSC)

the context.SessionID is the Session ID of the message as it is being pass thru the Business Process. Does anyone see why that would not work off hand?

3件の新着コメント
ディスカッション (3)2
続けるにはログインするか新規登録を行ってください