Pesquisar

Limpar filtro
Anúncio
Danusa Calixto · Maio 11, 2023

Documentação para InterSystems Caché e InterSystems Ensemble versões anteriores a 2017.1 estarão disponíveis somente em formato PDF

A partir de 16 de Maio, a documentação para as versões do InterSystems Caché® e InterSystems Ensemble® anteriores a 2017.1 estarão disponíveis somente em formato PDF no site da documentação da InterSystems. Instancias locais destas versões continuarão apresentando o conteúdo dinamicamente.
Artigo
Nikolay Solovyev · Nov. 9, 2020

Lançamento do Gerenciador de Pacotes ZPM InterSystems 0.2.8

Nós lançamos uma nova versão do ZPM (Gerenciador de Pacotes) Novidades desta nova versão: 1) Suporte de Interoperabilidade - Suporte a dtl, bpl, lut, esd, x12 no module.xml Agora é permitido se referir a arquivos DTL e BPL. O ZPM armazena e os utiliza como CLS. <Resource Name="ResourceTest.TestDTL.dtl"/> <Resource Name="ResourceTest.TestBPL.bpl"/> Outros componentes de interoperabilidade como LUT, ESD, X12 devem estar em formato XML com extensão .xml e são esperados na pasta com nome i14y (forma reduzida para interoperabilidade) <Resource Name="Test_HIPAA_5010.X12"/> <Resource Name="hl7_2.5.LUT"/> 2) Suporte a arquivos DFI: Permite múltiplas formas de definição para recursos DFI:Pelo Nome Completo: <Resource Name="Sample Operational Reports-Auditing Overview.dashboard.DFI"/> Caracteres-coringa com o nome da pasta: <Resource Name="Sample Operational Reports-*.DFI"/> Apenas pela extensão: <Resource Name="*.DFI"/> Limitado por palavras-chave, usado apenas durante a exportação: <Resource Name="*.DFI" Keywords="myapp"/>
Artigo
Yuri Marx · Mar. 8, 2021

Dia 1: Desenvolvimento com Intersystems Objects e SQL

Eu estou participando no Desenvolvendo com Objetos InterSystems e SQL com Joel Solon, o curso é muito legal e eu vou compartilhar algumas dicas com vocês que eu peguei durante o treinamento. Dicas apresentadas no dia 1: 1. InterSystems IRIS unifica: banco de dados InterSystems IRIS (Caché), Interoperabilidade IRIS (Ensemble), inteligência de negócios IRIS (DeepSee) e Análise de texto IRIS (iKnow). 2. IRIS é multimodelo: objeto, relacional, documento e multidimensional 3. Interoperável: acesso nativo de Java, .NET, outras linguagens, como ObjectScript; Acesso a dados ODBC e JDBC, acesso ao serviço SOAP / REST; mensagem dirigida com roteamento de dados, transformações e fluxos de trabalho; Arquitetura SOA com ESB. 4. IRIS é transacional e analítico. 5. O IRIS escala horizontalmente com ECP (distribuído para volume do usuário) e fragmentação para volume de dados. 6. Instalação em containers públicos ou privados com Gerenciamento Cloud. 7. Opções de IDE para desenvolver: VSCode (mais popular), Studio (somente Windows) Atelier (descontinuado). 8. Ferramenta Terminal para comandos CLI. 9. Portal de Administração para comandos via browser. 10. IRIS é multiplataforma (UNIX, Linux, Windows) com a opção de docker para Linux. 11. Possui lançamentos anuais 20 ##. 1 (EM - Manutenção Estendida) e lançamentos Trimestrais (CD - entrega contínua). 12. IRIS é sensível a maiúsculas e minúsculas e a CamelCase é uma boa prática. 13. As classes são recipientes para métodos e propriedades. 14. Métodos realizam tarefas específicas e não são permitidas sobrecarga de método (dois métodos com o mesmo nome em uma classe). 15. Existem 2 tipos de métodos: ClassMethod (ação não associada à instância do objeto) e Method (ação associada à instância do objeto). 16. Use ##class() para executar métodos de classe e criar uma instância (com%New ou %OpenId) para executar métodos. 17. O tipo padrão para os argumentos do método é %String. 18. A notação "..." indica argumentos variáveis. Exemplo do método (a As %String, b ... as %String) como %Status. 19. Quando você passa argumentos como chamador de método: 1. Se você usar . você passa como referência; 2. Os argumentos são opcionais e você pode usar $data() para testar como o método que chama passou o argumento; 20. String é o tipo padrão para as variáveis. 21. ObjectScript suporta tipos dinâmicos. 22. no ObjectScript 0 é para falso e outros valores são verdadeiros. 23. Pacotes permitem que você organize classes em pastas. 24. Se você usar import em uma classe ou método, não precisa fazer referência ao nome de uma classe. 25. Classes persistentes (armazenadas no disco) estendem %Persistente. 26. As classes persistentes têm propriedades para persistir os atributos/valores da classe. 27. Cada classe persistente possui um número de ID único imutável. PS 1. Eu resgatei este curso de 5 dias (se você pagar $2.800) ou 40.000 pontos.(https://globalmasters.intersystems.com/rewards/34/reward_redemptions/new) PS 2: Joel Solon é um excelente instrutor (grandes dicas para certificação IRIS). PS 3: O material do curso é excelente e os recursos, ferramentas e suporte são fantásticos. Amanhã irei postar o resumo do dia 2.
Artigo
Nikolay Solovyev · Nov. 23, 2021

Lançamento do Gerenciador de Pacotes InterSystems ZPM 0.3.2

Um novo lançamento do ZPM foi publicado - ZPM 0.3.2. O que há de novo nesta versão: Várias alterações no comando output da ajuda Alterações em cores nas saídas Adicionada a habilidade de adicionar mais tipos de repositórios Adicionada a habilidade de especificar uma mensagem pós instalação, com a tag AfterInstallMessage no module.xml Adicionada a variável ${webroot}, que se refere à url com host e porta onde o servidor web interno está disponível. Corrigido o problema que ocorria durante a instalação no caso de não serem especificados nenhum módulo (problema #243) Corrigido o problema com o recurso FileCopy em maiúsculas Algumas outras pequenas correções
Anúncio
Angelo Bruno Braga · Out. 4, 2022

Lançamento do Gerenciador de Pacotes InterSystems ZPM 0.4.0

Uma nova versão do ZPM foi publicada, a 0.4.0 Novidades da nova versão Adicionado o suporte a pacotes Implantados, publicação e instalação Suporte a múltiplos servidores de registro, ex. servidores de registro públicos de comunidades, privados corporativos e outros, incluindo código embutido Python Habilidade de exibição de todas as versões e pacotes de origem na busca Corrigido o problema de pacotes com código pré carregado Expandido o limite de tamanho de argumentos na chamada Múltiplos registros Agora é possível definir mais de um registro em sua instância e assim, você poderá utilizar registros públicos de comunidades, de teste ou privados corporativos ao mesmo tempo. Basta utilizar outro nome para o registro Por exemplo, podemos adicionar um registro de teste: zpm:USER>repo -n test -r -url https://test.pm.community.intersystems.com/registry/ -user test -pass PassWord42 test Source: https://test.pm.community.intersystems.com/registry/ Enabled? Yes Available? Yes Use for Snapshots? Yes Use for Prereleases? Yes Is Read-Only? No Deployment Enabled? No Username: test Password: <set> zpm:USER>repo -list test Source: https://test.pm.community.intersystems.com/registry/ Enabled? Yes Available? Yes Use for Snapshots? Yes Use for Prereleases? Yes Is Read-Only? No Deployment Enabled? No Username: test Password: <set> registry Source: https://pm.community.intersystems.com Enabled? Yes Available? Yes Use for Snapshots? Yes Use for Prereleases? Yes Is Read-Only? No Deployment Enabled? No E além desta alteração, agora é possível redefinir propriedades para registros apenas enviando o nome de um registro existente. Por exemplo, atualizando apenas a senha: zpm:USER>repo -n test -pass PassWord42 test Source: https://test.pm.community.intersystems.com/registry/ Enabled? Yes Available? Yes Use for Snapshots? Yes Use for Prereleases? Yes Is Read-Only? No Deployment Enabled? No Username: test Password: <set> Pacotes Implantados A partir da versão 0.4.0, o ZPM passou a suportar pacotes implantados. O reduzido module.xml pode parecer como o exibido abaixo, o importante aqui é a flag Deploy="true" <?xml version="1.0" encoding="UTF-8"?> <Export generator="Cache" version="25"> <Document name="demo.ZPM"> <Module> <Name>demo</Name> <Version>1.0.0</Version> <Description>DEMO.</Description> <Keywords>demo</Keywords> <SourcesRoot>src</SourcesRoot> <Resource Name="Sample.Demo.PKG" Deploy="true"/> </Module> </Document> </Export> O processo de implantação é o mesmo que o anterior, você deve utilizar o comando load para carregar o módulo em modo desenvolvimento (por padrão) zpm "load /home/irisowner/myproject" Neste caso, o zpm irá carregar o código fonte e ignorar a flag Deploy devido ao Modo Desenvolvimento e assim, você poderá alterar o código. Publicando Para publicar um módulo Implantado você deverá utilizar seu próprio registro ou poderá utilizar registros de teste de comunidades para testes. zpm:USER>publish demo -DPublishTo=test [USER|demo] PrepareDeploy START [USER-PACKAGE-429287|demo] PrepareDeploy SUCCESS [USER-PACKAGE-429287|demo] Reload START (/home/irisowner/zpm/packages/demo/) [USER-PACKAGE-429287|demo] Reload SUCCESS [demo] Module object refreshed. [USER-PACKAGE-429287|demo] Validate START [USER-PACKAGE-429287|demo] Validate SUCCESS [USER-PACKAGE-429287|demo] Compile START [USER-PACKAGE-429287|demo] Compile SUCCESS [USER-PACKAGE-429287|demo] Activate START [USER-PACKAGE-429287|demo] Configure START [USER-PACKAGE-429287|demo] Configure SUCCESS [USER-PACKAGE-429287|demo] Activate SUCCESS [USER-PACKAGE-429287|demo] Package START [USER-PACKAGE-429287|demo] MakeDeployed START [USER-PACKAGE-429287|demo] MakeDeployed SUCCESS [USER|demo] Package SUCCESS [USER|demo] Register START [USER|demo] Register SUCCESS [USER|demo] Publish START [USER|demo] Publish SUCCESS Quando o ZPM verifica que o pacote utiliza a flag Deploy=true para alguns recursos, para propósitos de empacotamento e publicação, ele cria um novo namespace temporário, carrega o pacote lá, implanta o código e empacota o que resta sem o código-fonte original, onde não deveria estar. O log exibe cada passo e o namespace onde ele foi executado. Um parâmetro adicional -DPublishTo=test, define o nome do registro onde se publicar o pacote. E se você desejar, você poderá alterar o número da versão também -DNewVersion=1.0.0 Instalação de pacotes Implantados A instalação é feita como usualmente , mas você não poderá instalar o pacote implantado, ou qualquer pacote no modo de produção, se já tiver o pacote instalado no modo de desenvolvimento. zpm:USER>install demo ERROR! Cannot install 'demo' over previously installed in developer mode Você precisaria desinstalar o pacote instalado no modo de desenvolvimento ou usar um namespace ou instância limpa para ele. É importante lembrar que os pacotes implantados não possuem código-fonte, portanto, o empacotamento deve ser concluído em uma versão específica do IRIS que suporte o desenvolvedor. O registro suporta várias versões de plataforma para uma versão específica do pacote, portanto, durante a instalação, o zpm solicitará a versão para a plataforma. Para comparar a versão, ele usa apenas a maior e a menor parte da versão IRIS, por exemplo. 2022.2, 2021.1. Quando você tentar instalar o pacote em uma versão não suportada do IRIS, receberá o erro zpm:USER>install test/demo ERROR! Deployed package 'demo' 1.0.0 not supported on this platform 2022.1. Instalação com sucesso zpm:USER>install test/demo [USER|demo] Reload START (/usr/irissys/mgr/.modules/USER/demo/1.0.0/) [USER|demo] Reload SUCCESS [demo] Module object refreshed. [USER|demo] Validate START [USER|demo] Validate SUCCESS [USER|demo] Compile START [USER|demo] Compile SUCCESS [USER|demo] Activate START [USER|demo] Configure START [USER|demo] Configure SUCCESS [USER|demo] Activate SUCCESS Imagens Docker com ZPM O ZPM mais recente já está disponível com a Comunidade IRIS e o ZPM pré-instalado Nomes das imagens intersystemsdc/iris-community intersystemsdc/irishealth-community intersystemsdc/iris-ml-community intersystemsdc/irishealth-ml-community E tags disponíveis tag de versão mais recente e completa 2022.1.0.209.0-zpm prévia e tag de versão completa 2022.2.0.345.0-zpm 2021.2.0.651.0-zpm Todas as imagens estão disponíveis para x86-64 e ARM64 pelo mesmo nome.
Anúncio
Angelo Bruno Braga · jan 16, 2023

Lançamento do Gerenciador de Pacotes InterSystems versão 0.5.2

Acabamos de lançar uma pequena atualização no gerenciador de pacotes, que foi renomeado de ZPM para IPM, conforme expliquei em Novembro. É puramente uma versão de correção de bug, interpretando corretamente os códigos de retorno ROBOCOPY e corrigindo uma regressão que impedia a instalação de determinados pacotes. Obtenha aqui: https://github.com/intersystems/ipm/releases/tag/v0.5.2
Pergunta
Celso Mendes · Maio 8

Configurar o Vscode para acessar INtersystems Iris.

Tem algum tutorial de configuração o vscode para acessar o Intersystems Iris, permitindo a edição e compilação de rotinas em determinado Namespace. Onde posso pesquisar, estamos verificando migrando da versão 2021.2 que ainda tem o Studio, para a mais rescente que não tem mais o Studio. Olá Celso, Tem alguns aqui na comunidade mesmo: https://pt.community.intersystems.com/post/como-come%C3%A7ar-usar-vscode (créditos: @Heloisa.Paiva) https://pt.community.intersystems.com/post/configurando-o-vs-code-para-trabalhar-com-tecnologias-da-intersystems (créditos: @Maria.Gladkova, tradução: @Danusa.Ferreira) Espero que lhe ajude. José bom dia Celso, o Studio passa a ser distrubuido separadamente nas versões mais recentes do InterSystems IRIS. Mas você pode continuar usando o Studio. Recomendamos a utilização do VS Code, mas a escolha é sempre sua. para fazer odownload do Studio separado, favor consultar o site do InterSystems WRC. obrigado, vale a pena lembrar que o Studio não receberá nenhuma melhoria, enquanto o suporte ao VS Code contunuará a ser melhorado e com mais funcionalidades incorporadas.
Anúncio
Rochael Ribeiro · Jun. 6, 2022

InterSystems anuncia o Lançamento Geral da versão 2022.1 do InterSystems IRIS, IRIS for Health & HealthShare Health Connect

A InterSystems está grata em anunciar que as versões 2022.1 dos produtos InterSystems IRIS Data Platform, InterSystems IRIS for Health e HealthShare Health Connect estão agora disponíveis. A versão 2022.1 é uma versão de manutenção estendida, significando que as compilações de manutenção ficarão disponíveis por dois anos, seguidos de dois anos de compilações específicas de segurança. Destaques da Versão Atualização das Plataformas Suportadas A Plataforma de Dados InterSystems IRIS 2022.1 expande o suporte às plataformas, incluindo os seguintes novos e atualizados sistemas operacionais para cargas de trabalho de produção: Windows Server 2022 Windows 11 AIX 7.3 Oracle Linux 8 Também estamos felizes em anunciar que tanto os processadores Apple’s M1 quanto Intel são suportados com o MacOS 12 (Monterey) para ambientes de desenvolvimento. Melhor Desenvolvimento Python Nativo – utilize o Python & o ObjectScript dentro do IRIS nativamente Adaptadores de Interoperabilidade para Kafka, AWS S3, AWS SNS & CloudWatch Experiência redesenhada para o Production Extensions (PEX) Velocidade, Escalabilidade & Segurança Rebalanceamento de Shards Online Adaptive SQL Compressão de Journal & Stream TLS 1.3, Suporte OAuth 2 para email Analytics & IA SQL Loader Melhorias de Implantação para o InterSystems Reports Maiores detalhes sobre todas estas funcionalidades podem ser encontradas na documentação do produto: InterSystems IRIS 2022.1: documentação e notas da versão InterSystems IRIS for Health 2022.1: documentação e notas da versão HealthShare Health Connect 2022.1: documentação e notas da versão Como obter As plataformas estão disponíveis tanto em pacotes clássicos de instalação como através de imagens de contêineres. Para uma lista completa de instaladores e imagens de contêineres disponíveis, consultem por favor o documento de Plataformas Suportadas. Pacotes completos de instalação para cada produto são disponibilizados através da página de Distribuição de Software do WRC. Utilizando a opção de instalação Customizada, você poderá selecionar as opções que você precisar, como o InterSystems Studio e o IntegratedML, para ajustar a instalação a suas necessidades. Imagens de contêineres para as Edições Enterprise do InterSystems IRIS e IRIS for Health, assim como todos os componentes correspondentes, estão disponíveis a partir do InterSystems Container Registry utilizando os seguintes comandos: docker pull containers.intersystems.com/intersystems/iris:2022.1.0.209.0 docker pull containers.intersystems.com/intersystems/irishealth:2022.1.0.209.0 docker pull containers.intersystems.com/intersystems/iris-arm64:2022.1.0.209.0 docker pull containers.intersystems.com/intersystems/irishealth-arm64:2022.1.0.209.0 docker pull containers.intersystems.com/intersystems/iris-ml:2022.1.0.209.0 docker pull containers.intersystems.com/intersystems/iris-ml-arm64:2022.1.0.209.0 Para alista completa de imagens disponíveis, consulte por favor a documentação ICR. Imagens de contêineres para a Edição da Comunidade também podem ser baixadas do InterSystems Container Registry utilizando os seguintes comandos: docker pull containers.intersystems.com/intersystems/iris-community:2022.1.0.209.0 docker pull containers.intersystems.com/intersystems/irishealth-community:2022.1.0.209.0 docker pull containers.intersystems.com/intersystems/iris-community-arm64:2022.1.0.209.0 docker pull containers.intersystems.com/intersystems/irishealth-community-arm64:2022.1.0.209.0 docker pull containers.intersystems.com/intersystems/iris-ml-community:2022.1.0.209.0 docker pull containers.intersystems.com/intersystems/iris-ml-community-arm64:2022.1.0.209.0 O InterSystems IRIS Studio 2022.1 é uma IDE isolada para utilização no Microsoft Windows e pode ser baixada através da página de Download de Componentes do WRC. Ele funciona com o InterSystems IRIS e IRIS for Health das versões 2022.1 e anteriores. A InterSystems também suporta o plugin VSCode-ObjectScript para desenvolvimento de aplicações para o InterSystems IRIS com o Visual Studio Code, que está disponível para Microsoft Windows, Linux e MacOS. Nossas listas correspondentes nos principais marketplaces em nuvem serão atualizados nos próximos dias. O identificador da compilação desta versão é 2022.1.0.209.0.
Artigo
Nikita Savchenko · Out. 26, 2020

Explore os dados de texto com o InterSystems iKnow Entity Browser

Este artigo apresenta o InterSystems iKnow Entity Browser, uma aplicação web que permite visualizar dados de texto extraídos e organizados obtidos de um grande número de textos, alimentado pela tecnologia InterSystems iKnow, também conhecida como InterSystems Text Analytics no InterSystems IRIS. Sinta-se à vontade para [experimentar a demonstração](https://intersystems-ru.github.io/iknow-entity-browser/) dessa ferramenta ou aprender mais sobre ela no [InterSystems Open Exchange](https://openexchange.intersystems.com/index.html#!/package/iknow-entity-browser). Comecei o desenvolvimento deste projeto no final de 2016. De agora em diante, o [meu](https://nikita.tk/) iKnow Entity Browser é usado em todo o mundo por aqueles que usam a tecnologia InterSystems e por aqueles que fazem extração de texto. Este artigo deveria ter aparecido antes, entretanto, nunca é tarde para contar algo sobre coisas úteis! ## Sobre o que é o InterSystems Text Analytics InterSystems iKnow (ou InterSystems Text Analytics) é uma tecnologia de NLP incorporável que permite extrair dados significativos de textos. Bem, não apenas para extrair esses dados, mas também para coletá-los, vinculá-los, filtrá-los e priorizá-los. Como resultado, o InterSystems iKnow fornece uma base sólida para a construção de aplicações de dados para mineração de dados. Do ponto de vista da programação, o iKnow fornece uma API rica que permite incorporar essa tecnologia a qualquer aplicação, independentemente de sua linguagem de programação. O iKnow Entity Browser usa esta API para visualizar os dados processados na forma de uma árvore de conceitos e relações. Antes do lançamento do InterSystems iKnow Entity Browser, a única solução pronta para uso disponível para exploração de dados era o visualizador incorporado do iKnow, que é enviado junto com os produtos baseados no InterSystems Caché e IRIS. Este visualizador apresenta muitas ferramentas úteis principalmente para pesquisar algo no texto processado (no iKnow é chamado de domínio), enquanto o iKnow Entity Browser é criado também para visualizar e organizar conceitos em um texto. Visualização do Portal de Conhecimento iKnow ## iKnow Entity Browser O iKnow Entity Browser é um projeto de código aberto, o que significa que qualquer pessoa pode contribuir com seu núcleo. Aqui está a lista de recursos que foram desenvolvidos: visualização de conceitos semelhantes e relacionados como uma árvore (diagrama de floco de neve), suporte a ampliação e redução de zoom; ferramentas de edição de gráficos: operações de seleção, exclusão, desfazer e refazer; customização da fonte de dados, que também permite explorar o gráfico em servidores remotos; visualização tabular personalizável de todas as entidades apresentadas em um gráfico, que também pode ser exportada como uma planilha *.csv; interface de usuário responsiva, compatível com toque e dispositivos móveis. Demonstração de gráfico do iKnow Entity Browser Instalação A instalação do iKnow Entity Browser é bastante direta. Baixe a versão mais recente (arquivo XML) da aplicação e importe-a para o namespace habilitado para iKnow (por exemplo, SAMPLES). Isso funciona com todos os lançamentos mais recentes dos produtos InterSystems, incluindo a plataforma de dados InterSystems IRIS. Para importar o arquivo XML, você pode arrastar e soltar o arquivo na janela do Studio (Atelier). Alternativamente, você pode importar o arquivo usando o portal de gerenciamento de sistemas, no explorador de sistemas - classes. Em seguida, abra o seu navegador na página web http://localhost:57772/EntityBrowser/ (altere o host/porta respectivamente para a configuração do seu servidor e lembre-se de colocar uma barra / no final da URL). Para excluir a aplicação, basta excluir o pacote EntityBrowser do Studio/Atelier. A aplicação web instalada será excluída automaticamente da mesma forma que foi criada durante a instalação, se não foi modificada desde então. Atualmente, para usar o iKnow Entity Browser em diferentes namespaces, você precisa importá-lo para cada namespace habilitado para iKnow e configurar manualmente a aplicação web (por exemplo, você pode clonar a aplicação /EntityBrowser e renomeá-la). Nesse caso, altere as configurações dentro da aplicação web para as correspondentes (leia o guia de personalização abaixo). Se você instalou o iKnow Entity Browser no servidor e tornou a aplicação web pública, pode se conectar a esse servidor a partir de qualquer front-end, até mesmo a partir desta aplicação de demonstração, por exemplo. Personalização O menu de configuração da aplicação, localizado no canto superior direito da interface do usuário, permite personalizar a aparência e a fonte de dados. No menu de configurações, você pode especificar o seguinte (veja a imagem abaixo): URL da fonte de dados, que identifica o servidor com o navegador de entidade iKnow instalado (aplicação web /EntityBrowser). Nome do domínio. Ao criar um novo domínio no InterSystems iKnow, você especifica o nome do domínio. Este nome vai para a entrada de nome de domínio. Um conceito que constrói o gráfico. Por padrão, o iKnow Entity Browser constrói o gráfico a partir de conceitos relacionados ao conceito que você especifica, no entanto, você pode alterá-lo para conceitos semelhantes, usando o menu suspenso do lado esquerdo da entrada do conceito ou do menu suspenso menu inferior na visualização principal, se ativado. Se deve ou não colocar a entrada do conceito na visualização principal. Se deve ou não colocar o menu suspenso do tipo de consulta na visualização principal. Se deve ou não mostrar nós ocultos na visualização tabular. Os nós ocultos são aqueles que não são expandidos em uma visualização, mas estão presentes em um resultado de consulta. Colunas que são exibidas em uma visualização tabular. Aqui você pode personalizar o nome da coluna e selecionar um valor que exibe (ID, tipo de borda de entrada, rótulo, pontuação, propagação (spread), frequência, rótulo do conceito pai, ID do conceito pai). Redefinir todas as configurações para os padrões.    Configurações do iKnow Entity Browser O Gráfico Uma vez que o conceito de seed é especificado nas configurações, o iKnow Entity Browser constrói um gráfico de conceitos semelhantes ou relacionados ao conceito de seed. Você pode brincar com este gráfico arrastando seus nós, no entanto, a força física sempre tentará organizá-lo na forma de um diagrama de floco de neve. O gráfico pode ser editado usando os controles na parte inferior da tela. Isso inclui os botões desfazer/refazer, aumentar/diminuir o zoom e redefinir os botões de zoom, redefinir o botão de seleção, desvincular e excluir botões de seleção. Passar o mouse sobre qualquer um desses botões exibe uma dica de ferramenta. Menu com controles Caso precise de uma lista de conceitos selecionados, você pode alternar uma visualização tabular pressionando o botão correspondente no canto superior direito. Tudo o que você faz no gráfico fica sincronizado com a visualização tabular e vice-versa. Na visualização tabular, quando você passa o mouse sobre uma das linhas, o nó correspondente é destacado no gráfico. Se você clicar na linha, a visualização do gráfico se concentra automaticamente no nó correspondente. Assim como no gráfico, você pode clicar nos botões nas linhas da tabela para selecionar/desmarcar os nós. Visualização Tabular Depois de ter uma seleção de nós, você pode exportá-los como uma tabela no formato *.csv. Pressione o botão de visualização tabular no canto superior direito para que a tabela apareça e então você encontrará o botão "Exportar". Isso exportará todos os nós selecionados na forma de uma tabela, a mesma tabela que você tem em uma visualização tabular. Tem Mais iKnow Entity Browser é apenas um dos vários projetos que fiz para a corporação InterSystems. Aqui estão alguns, se você ainda não viu esses projetos: WebTerminal, Visual Editor, Class Explorer, Light Pivot Table, GlobalsDB Admin. Encontre esses e outros projetos relacionados à InterSystems no InterSystems Marketplace. Todos os meus projetos são de código aberto, permitindo que outros contribuam. O código desses projetos está disponível no GitHub. Você também pode usar seu código como um exemplo para construir sua própria aplicação sobre os produtos da InterSystems. Se você der uma olhada mais de perto, descobrirá que a maioria deles são pacotes instaláveis, enviados em um único arquivo XML. Se você está curioso em usar a mesma estratégia para seus pacotes, confira este artigo. Espero que você ache o iKnow Entity Browser e outros projetos úteis! Aproveite!
Anúncio
Angelo Bruno Braga · Nov. 30, 2020

O Advento do Código 2020 com a InterSystems! Inscreva-se para ganhar prêmios!

Olá Desenvolvedores, Vocês estão preparados para participar de nossa competição anual de Dezembro ? Junte-se ao concurso o Advento do Código 2020 da InterSystems, participe em nosso concurso de ObjectScript e ganhe prêmios !!! 🏆 Nosso Placar 🏆 Aqui você consegue ver os participantes do ano passado. 👉🏼 Junte-se ao placar privado de ObjectScript com o código 130669-ab1f69bf. Nota: Você precisa se inscrever para o Advento de Código (ex.: com uma conta GitHub / Google / Twitter / Reddit ) para ver o placar e participar no concurso. Prêmios: 🥇 1° lugar - US$3,000 🥈 2° lugar - US$2,000 🥉 3° lugar - US$1,000 Todos os ganhadores também receberão uma insígnia especial do Global Master. Nota: Funcionários da InterSystems não concorrem a prêmios em dinheiro. Condições para ganhar: Para ganhar nosso prêmio você deverá estar no topo do Placar ObjectScript , fazer o upload de todas as soluções em um repositório público no GitHub e apresentar o código escrito em InterSystems ObjectScript no formulário UDL , como no modelo abaixo: ⬇️ Concurso o Advento do Código 2020 modelo ObjectScript Então! Os primeiros desafios serão desbloqueados dia 1° de dezembro às 02:00 horário de Brasília. Boa sorte a todos !!!
Artigo
Alexey Maslov · Fev. 1, 2021

Processamento Paralelo de Dados Multimodelos no InterSystems IRIS e Caché

Como todos nós sabemos, o InterSystems IRIS possui uma ampla gama de ferramentas para melhorar a escalabilidade dos sistemas de aplicação. Em particular, muito foi feito para facilitar o processamento paralelo de dados, incluindo o uso de paralelismo no processamento de consultas SQL e o recurso mais chamativo do IRIS: o sharding. No entanto, muitos desenvolvimentos maduros que começaram no Caché e foram transportados para o IRIS usam ativamente os recursos de multimodelos deste DBMS, que são entendidos como permitindo a coexistência de diferentes modelos de dados dentro de um único banco de dados. Por exemplo, o banco de dados [HIS qMS](https://openexchange.intersystems.com/package/HIS-qMS) contém modelos de dados semânticos relacionais (registros médicos eletrônicos), relacionais tradicionais (interação com PACS) e hierárquicos (dados de laboratório e integração com outros sistemas). A maioria dos modelos listados é implementada usando a ferramenta qWORD do [SP.ARM](https://openexchange.intersystems.com/company/SP-ARM) (um mini-DBMS que é baseado no acesso direto a globais). Portanto, infelizmente, não é possível usar os novos recursos de processamento de consulta paralela para escalonamento, uma vez que essas consultas não usam o acesso IRIS SQL. Enquanto isso, conforme o tamanho do banco de dados cresce, a maioria dos problemas inerentes a grandes bancos de dados relacionais tornam-se adequados para os não relacionais. Portanto, esse é o principal motivo pelo qual estamos interessados ​​no processamento paralelo de dados como uma das ferramentas que podem ser usadas para escalonamento. Neste artigo, gostaria de discutir os aspectos do processamento paralelo de dados com os quais tenho lidado ao longo dos anos ao resolver tarefas que raramente são mencionadas em discussões sobre Big Data. Vou me concentrar na transformação tecnológica de bancos de dados, ou melhor, em tecnologias de transformação de bancos de dados. Não é segredo que o modelo de dados, a arquitetura de armazenamento e a plataforma de software e hardware geralmente são escolhidos nos estágios iniciais do desenvolvimento do sistema, geralmente quando o projeto ainda está longe de ser concluído. No entanto, algum tempo passará, e é bastante comum quando vários anos após a implantação do sistema, os dados precisem ser migrados por um motivo ou outro. Aqui estão apenas algumas das tarefas comumente encontradas (todos os exemplos são tirados da vida real): 1. Uma empresa está planejando se internacionalizar e seu banco de dados com codificação de 8 bits deve ser convertido para Unicode. 2. Um servidor desatualizado está sendo substituído por um novo, mas é impossível transferir perfeitamente os registros (journals) entre os servidores (usando o espelhamento ou os recursos do sistema Shadowing IRIS) devido a restrições de licenciamento ou falta de recursos para atender às necessidades existentes, como, por exemplo, quando você está tentando resolver uma tarefa (1). 3. Você descobre que precisa alterar a distribuição dos globais entre os bancos de dados, por exemplo, movendo um grande global com imagens para um banco de dados separado. Você deve estar se perguntando o que há de tão difícil nesses cenários. Tudo o que você precisa fazer é parar o sistema antigo, exportar os dados e importá-los para o novo sistema. Mas se você estiver lidando com um banco de dados com várias centenas de gigabytes (ou mesmo vários terabytes) de tamanho e seu sistema estiver funcionando no modo 24x7, você não conseguirá resolver nenhuma das tarefas mencionadas usando as ferramentas IRIS padrão. ## Abordagens básicas para paralelização de tarefas ### Paralelização "Vertical" Suponha que você possa dividir uma tarefa em várias tarefas de componentes. Se você tiver sorte, descobrirá que pode resolver algumas delas em paralelo. Por exemplo, - Preparar dados para um relatório (cálculos, agregação de dados…) - Aplicar regras de estilo - Imprimir relatórios todas podem ser executadas ao mesmo tempo para vários relatórios: um relatório ainda está em fase de preparação, outro já está sendo impresso ao mesmo tempo, etc. Essa abordagem não é nova. É utilizada desde o advento do processamento de dados em lote, ou seja, há 60 anos. No entanto, embora não seja um conceito novo, ainda é bastante útil. Contudo, você só perceberá um efeito de aceleração perceptível quando todas as subtarefas tiverem um tempo de execução comparável, e nem sempre é esse o caso. ### Paralelização "Horizontal" Quando a ordem das operações para resolver uma tarefa consiste em iterações que podem ser executadas em uma ordem arbitrária, elas podem ser executadas ao mesmo tempo. Por exemplo: - Pesquisa contextual no global: - Você pode dividir o global em subglobais ($order pelo primeiro índice). - Pesquisar separadamente em cada um deles. - Reunir os resultados da pesquisa. - Transferir o global para outro servidor por meio de um soquete ou ECP: - Dividir o global em partes. - Passar cada um deles separadamente. Recursos comuns dessas tarefas: - Processamento idêntico em subtarefas (até compartilhar os mesmos parâmetros). - A correção do resultado final não depende da ordem de execução dessas subtarefas. - Há uma conexão fraca entre as subtarefas e a tarefa "pai" apenas no nível de relatório de resultados, onde qualquer pós-processamento necessário não é uma operação que consome muitos recursos. Esses exemplos simples sugerem que o paralelismo horizontal é natural para tarefas de transformação de dados e, de fato, é. A seguir, enfocaremos principalmente nesse tipo de processamento paralelo. ## Paralelização "Horizontal" ### Uma das abordagens: MapReduce [MapReduce](https://pt.wikipedia.org/wiki/MapReduce) é um modelo de computação distribuída que foi introduzido pelo [Google](https://pt.wikipedia.org/wiki/Google). Ele também é usado para executar essas operações, e para processar grandes quantidades de informações ao mesmo tempo. Implementações populares de software livre são construídas em uma combinação do [Apache Hadoop](https://pt.wikipedia.org/wiki/Hadoop) and [Mahout](https://en.wikipedia.org/wiki/Apache_Mahout). Etapas básicas do modelo: Map, distribuição de tarefas entre manipuladores, o processamento atual e Reduce combinar os resultados do processamento. Para o leitor interessado que queira saber mais, posso recomendar a série de artigos de Timur Safin sobre a abordagem dele para a criação da ferramenta MapReduce em IRIS/Caché, que começa com [Caché MapReduce - uma introdução ao BigData e ao conceito MapReduce (Parte 1)](https://community.intersystems.com/post/cach%C3%A9-mapreduce-introduction-bigdata-and-mapreduce-concept). Observe que, devido à "capacidade inata" do IRIS de gravar dados no banco de dados rapidamente, a etapa de Reduce, via de regra, acaba sendo trivial, como na [versão distribuída do WordCount](https://community.intersystems.com/post/cach%C3%A9-mapreduce-putting-it-all-together-%E2%80%93-wordcount-example-part-iii#comment-14196). Ao lidar com tarefas de transformação de banco de dados, isso pode ser completamente desnecessário. Por exemplo, se você usou manipuladores paralelos para mover um grande global para um banco de dados separado, então, não precisamos de mais nada. ### Quantos servidores? Os criadores de modelos de computação paralela, como MapReduce, geralmente o estendem a vários servidores, os chamados nós de processamento de dados, mas em tarefas de transformação de banco de dados, um desses nós geralmente é suficiente. O fato é que não faz sentido conectar vários nós de processamento (por exemplo, via Enterprise Cache Protocol (ECP)), uma vez que a carga da CPU necessária para a transformação dos dados é relativamente pequena, o que não pode ser dito sobre a quantidade de dados envolvidos no processamento. Nesse caso, os dados iniciais são usados ​​uma vez, o que significa que você não deve esperar nenhum ganho de desempenho do cache distribuído. A experiência mostra que geralmente é conveniente usar dois servidores cujas funções são assimétricas. Para simplificar um pouco o conceito: - O banco de dados de origem é montado em um servidor (*DB de origem*). - O banco de dados convertido é montado no segundo servidor (*DB de destino*). - O processamento de dados paralelos horizontais é configurado apenas em um desses servidores. Os processos operacionais neste servidor são também os processos mestres. - Os processos em execução no segundo servidor, são, por sua vez, os processos *escravos*. Quando você usa o ECP, esses são os processos do sistema DBMS (ECPSrvR, ECPSrvW e ECPWork) e, ao usar um mecanismo de transferência de dados orientado por soquete, esses são os processos filhos das conexões TCP. Podemos dizer que esta abordagem de distribuição de tarefas combina paralelismo horizontal (que é usado para distribuir a carga dentro do servidor mestre) com paralelismo vertical (que é usado para distribuir "responsabilidades" entre os servidores mestre e escravo). ## Tarefas e ferramentas Vamos considerar a tarefa mais geral de transformar um banco de dados: transferir todos ou parte dos dados do banco de dados de origem para o banco de dados de destino, enquanto possivelmente executa algum tipo de recodificação de globais (isso pode ser uma mudança de codificação, mudança de agrupamento , etc.). Nesse caso, os bancos de dados antigos e novos são locais em servidores de banco de dados diferentes. Vamos listar as subtarefas a serem resolvidas pelo arquiteto e desenvolvedor: 1. Distribuição de funções entre servidores. 2. Escolha do mecanismo de transmissão de dados. 3. Escolha da estratégia de transferência de globais. 4. Escolha da ferramenta para distribuição de tarefas entre vários processos. Vamos 'dar uma olhada' neles. ### Distribuição de funções entre servidores Como você já está familiarizado, mesmo que o IRIS esteja sendo instalado com suporte a Unicode, ele também pode montar bancos de dados de 8 bits (locais e remotos). No entanto, o oposto não é verdadeiro: a versão de 8 bits do IRIS não funcionará com um banco de dados Unicode e haverá erros inevitáveis de <WIDE CHAR> se você tentar fazer isso. Isso deve ser levado em consideração ao decidir qual dos servidores - de origem ou de destino - será o mestre se a codificação de caracteres for alterada durante a transformação dos dados. Contudo, é impossível aqui decidir sobre uma solução final sem considerar a próxima tarefa, que é a: ### Escolha do mecanismo de transmissão de dados Você pode escolher uma das seguintes opções aqui: 1. Se as versões de licença e DBMS em ambos os servidores permitirem o uso do ECP, considere o ECP como um transporte. 2. Caso contrário, a solução mais simples é lidar com os dois bancos de dados (de origem e de destino) localmente no sistema de destino. Para fazer isso, o arquivo de banco de dados de origem deve ser copiado para o servidor apropriado por meio de qualquer transporte de arquivo disponível, o que, é claro, levará mais tempo (para copiar o arquivo de banco de dados na rede) e espaço (para armazenar uma cópia do arquivo do banco de dados). 3. Para evitar perder tempo com a cópia do arquivo (pelo menos), você pode implementar seu mecanismo de troca de dados entre os processos do servidor por meio de um soquete TCP. Essa abordagem pode ser útil se: - O ECP não pode ser usado por algum motivo, por exemplo, devido à incompatibilidade das versões do DBMS servindo os bancos de dados de origem e destino (por exemplo, o DBMS de origem é de uma versão muito legada). - Ou: É impossível impedir que os usuários trabalhem no sistema de origem e, portanto, a modificação de dados no banco de dados de origem que ocorre no processo de transferência deve ser refletida no banco de dados de destino. Minhas prioridades ao escolher uma abordagem são bastante evidentes: se o ECP está disponível e o banco de dados de origem permanece estático enquanto é transferido – 1, se o ECP não está disponível, mas o banco de dados ainda está estático – 2, se o banco de dados de origem é modificado – 3. Se combinarmos essas considerações com a escolha do servidor mestre, podemos produzir a seguinte matriz de possibilidade: | **O banco de dados de origem está estático durante a transmissão?** | **O protocolo ECP está disponível?** | **Localização do banco de dados de origem** | **Sistema mestre** | | ------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ------------------------------------------- | ------------------ | | Sim | Sim | Remoto, no sistema de destino | Destino | | Sim | Não | Local (cópia) do sistema de destino | Destino | | Não | Não importa, pois usaremos nosso mecanismo para transferir dados por soquetes TCP. | Local (original) no sistema de origem | Origem | ### Escolha da estratégia de transferência de globais À primeira vista, pode parecer que você pode simplesmente passar os globais um a um lendo o Diretório Global. No entanto, os tamanhos dos globais no mesmo banco de dados podem variar muito: Recentemente, encontrei uma situação em que os globais em um banco de dados de produção variavam entre 1 MB e 600 GB. Vamos imaginar que temos os processos de trabalho nWorkers à nossa disposição, e há pelo menos um ^Big global para o qual é verdade: Size(^Big) > (Summary Size of All ^Globals) / nWorkers Então, não importa o quão bem-sucedida a tarefa de transferência dos globais restantes seja distribuída entre os processos de trabalho, a tarefa que acaba sendo atribuída à transferência do ^Big global permanecerá ocupada pelo restante do tempo alocado e provavelmente só terminará a tarefa muito depois dos outros processos terminarem de processar o restante dos globais. Você pode melhorar a situação pré-ordenando os globais por tamanho e iniciando o processamento com os maiores primeiro, mas nos casos em que o tamanho de ^Big se desvia significativamente do valor médio para todos os globais (que é um caso típico do banco de dados MIS qMS): Size(^Big) >> (Summary Size of All ^Globals) / nWorkers Esta estratégia não o ajudará muito, pois leva inevitavelmente a um atraso de muitas horas. Consequentemente, você não pode evitar a divisão de grandes globais em partes para permitir seu processamento usando vários processos paralelos. Desejo enfatizar que esta tarefa (número 3 na minha lista) acabou sendo a mais difícil entre as outras que estão sendo discutidas aqui, e levou a maior parte do meu tempo (ao invés da CPU!) para resolvê-la. ### Escolha da ferramenta para distribuição de tarefas entre vários processos A maneira como interagimos com o mecanismo de processamento paralelo pode ser descrita da seguinte maneira: - Criamos um pool de processos de trabalho em segundo plano. - Uma fila é criada para este pool. - O processo iniciador (vamos chamá-lo de _gerente local_), ter um plano que foi preparado com antecedência na etapa 3, e colocar as _unidades de trabalho_ na fila. Como regra, a _unidade de trabalho_ compreende o nome e os argumentos reais de um determinado método de classe. - Os processos de trabalho recuperam unidades de trabalho da fila e executam o processamento, que se resume a chamar um método de classe com os argumentos reais que são passados ​​para as unidades de trabalho. - Após receber a confirmação de todos os processos de trabalho de que o processamento de todas as unidades de trabalho enfileiradas foi concluído, o gerente local libera os processos de trabalho e finaliza o processamento, se necessário. Felizmente, o IRIS fornece um excelente mecanismo de processamento paralelo que se encaixa perfeitamente neste esquema, que é implementado na classe %SYSTEM.WorkMgr. Vamos usá-lo em um exemplo de execução que exploraremos em uma série planejada de artigos. No próximo artigo, pretendo me concentrar em esclarecer a solução para a tarefa número 3 com mais detalhes. No terceiro artigo, que aparecerá se você mostrar algum interesse na minha escrita, falarei sobre as nuances da resolução da tarefa número 4, incluindo, em particular, sobre as limitações de %SYSTEM.WorkMgr e as formas de superá-las.
Anúncio
Angelo Bruno Braga · Fev. 10, 2021

Bônus Tecnológico para o Concurso de Programação InterSystems Gran Prix

Olá Desenvolvedores! Aqui estão os bônus tecnológicos para o Concurso de Programação InterSystems Grand Prix que irão adicionar pontos à votação. Grupo Bônus Pontos Gerais Docker 2 ZPM 2 Teste Unitário 2 APIs e linguagens APIs REST 2 ODBC/JDBC 2 Uso de Python Embutido 4 APIs Nativas em Java, Python, .NET e node.js 3 Multi-modelo Globais (chave-valor) 2 SQL 2 Objeto 2 Novo Modelo 3 Analytics IRIS BI 2 IRIS NLP 2 InterSystems Reports 3 AI/ML Integrated ML 4 Gateway Python ou Julia 3 Interoperabilidade BPL 3 Adaptador Customizado 2 PEX 4 Mecanismo de Workflow 2 FHIR APIs REST para Servidor FHIR 3 Uso do Esquema FHIR SQL 2 Transformação entre Padrões de Saúde 3 Total 58 Abaixo estão os detalhes e links úteis para todos os bônus tecnológicos. Bônus Gerais Implantação em Pacote ZPM - 2 pontos Você pode ganhar este bônus se você criar e publicar o pacote ZPM (ObjectScript Package Manager) para sua aplicação Full-Stack de forma que ele possa ser implantado com o comando: zpm "install your-multi-model-solution" emu ma plataforma de dados IRIS com o cliente do ZPM instalado. Documentação do cliente ZPM. Uso de contêineres Docker - 2 pontos A aplicação ganha o bônus de ‘Uso de contêineres Docker’ se ela utiliza a plataforma de dados Intersystems IRIS em um contêiner Docker. Aqui você encontra um modelo simples para iniciar. Teste Unitário - 2 pontos Aplicações que possuírem Teste Unitário para o código ObjectScript na plataforma de dados InterSystems ganhará este bônus. Aprenda mais sobre Teste Unitário em ObjectScript na Documentação e na Comunidade de Desenvolvedore. APIs REST InterSystems IRIS Uso de APIs REST InterSystems IRIS- 2 points Você ganhará este bônus se você fizer acesso à plataforma de dados InterSystems IRIS através de APIs REST em sua aplicação Full-Stack.Você pode tanto criar as APIs REST quanto utilizar as disponíveis na plataforma quanto instalar APIs utilizando ZPM. Aprenda mais sobre APIs REST InterSystems IRIS. Uso de Python Embutido - 4 pontos Veja o vídeo relacionado. Informações adicionais serão divulgadas. Uso de APIs Nativas InterSystems - 3 pontos Você ganha este bônus se realizar o acesso aos dados de sua aplicação Full-Stack utilizando qualquer opção de APIs Nativas: .NET, Java, Python, Node.js. Aprenda mais aqui. Uso de InterSystems JDBC - 2 pontos A plataforma de dados InterSystems IRIS disponibiliza um driver JDBC para acesso a seus dados. Você ganha este bônus se realizar acesso aos dados em sua aplicação Full-Stack utilizando SQL e InterSystems JDBC. Bônus Multi-modelo Globais InterSystems (chave-valor) - 2 pontos As Globais InterSystems são arrays multidimensionais esparsos persistentes que são utilizados para armazenar qualquer dado na plataforma de dados InterSystems IRIS. Cada nó de Global pode ser considerado uma chave, que você pode atribuir um valor. A plataforma de dados InterSystems IRIS disponibiliza um conjunto de APIs, comandos ObjectScript e APIs Nativas para manipular as Globais. Ferramentas: Gerenciando Globais no Portal de Administração Documentação: Utilizando o Armazenamento Multidimensional (Globais) Utilizando Globais Artigos: As Globais são Espadas Mágicas para gerenciamento de dados A arte de mapear Globais para Classes Vídeos: Introdução Rápida às Globais Você pode ganhar 2 pontos de bônus utilizando Globais através de comandos ObjectScript ou através de APIs Nativas em sua aplicação. InterSystems SQL - 2 pontos A plataforma de dados InterSystems IRIS disponibiliza acesso SQL aos dados através de ObjectScript, REST API, JDBC. Ferramenta: Ferramentas SQL VSCode DBeaver SQL no Portal de Administração Outras ferramentas SQL Documentação: Acesso SQL Referência SQL InterSystems Artigos: Consultas à Classes no ObjectScript Vídeos: Coisas em SQL que você deveria saber Ganhe 2 pontos de bônus utilizando SQL InterSystems em sua aplicação. Objetos InterSystems - 2 pontos A plataforma de dados InterSystems IRIS disponibiliza uma forma de armazenear e alterar instâncias de objetos em globais através de ObjectScript/APIs REST, APIs Nativas para Java/.NET/Node.js/Python e XEP para Java/.NET. Documentação: Acesso via Objeto Ganhe 2 pontos de bônus utilizando Acesso via Objeto em sua aplicação. Novo Modelo de Dados - 2 pontos A plataforma de dados InterSystems IRIS pode ser utilizada como uma plataforma de dados que expõe APIs para o seu próprio modelo de dados. Você pode utilizar o ObjectScript, APIs REST ou ainda APIs Nativas para expor sua própria API provendo acesso a qualquer modelos de dados especiais como séries temporais, espacial, gráfico, RDF / triplo, armazenamento de colunas ou armazenamento de documentos. Introduza APIs para qualquer um dos novos modelos de dados e ganhe 2 pontos de bônus. Bônus IRIS Analytics InterSystems IRIS BI - 2 pontos O InterSystems IRIS Business Intelligence é uma funcionalidade do IRIS que lhe permite criar cubos de BI e tabelas dinâmicas a partir dos dados persistidos na plataforma de dados InterSystems IRIS e entregar esta informação aos usuários utilizando painéis interativos. Aprenda mais. Este modelo básico modelo iris-analytics contém exemplos de cubos de BI, tabelas dinâmicas e um painel interativo. InterSystems IRIS NLP (iKnow) - 2 pontos O InterSystems NLP, também conhecido como iKnow, é uma funcionalidade da plataforma InterSystems IRIS e também uma biblioteca para Processamento de Linguagem Natural que identifica entidades (frases) e seu contexto semântico em textos em linguagem natural em Inglês, Alemão, Holandês, Francês, Espanhol, Português, Sueco, Russo, Ucraniano, Tcheco e Japonês. Aprenda mais sobre o iKnow no Open Exchange. Exemplos: Navegador de Testos de Covid no iKnow Exemplos de Aviação e mais Use o iKnow para gerenciar os dados não estruturados em sua solução analítica e ganhe 1 ponto de bônus. InterSystems Reports - 3 pontos O InterSystems Reports é uma funcionalidade da plataforma de dados InterSystems IRIS que permite que você contrua relatórios impressos, envie-os por e-mail através de agendamento e entregue relatórios interativos para clientes. O InterSystems Reports é uma reembalagem do Logi Report (chamado anteriormente de JReport®), um produto da Logi Analytics®. Aprenda mais na Documentação. Verifique o repositório Github com exemplos do InterSystems Reports. Também veja vídeo de demonstração do InterSystems Reports e tenha um primeiro contato através do Laboratório de Aprendizagem. Você pode realizar o download do Designer e do Servidor do InterSystems Reports na seção de downloads do WRC download. As chaves de licença para o Designer e Servidor do InterSystems Reports estará disponível no Discord. AI/ML IntegratedML - 3 pontos O IntegratedML é uma funcionalidade da plataforma de dados InterSystems IRIS que expande o SQL com um conjunto de instruções de Machine Learning que permitem que você simplifique e automatize o uso de IA e ML para sua solução. Aprenda mais sobre o IntegratedML. Você precisará de imagens especiais da plataforma de dados InterSystems IRIS para utilizar o IntegratedML, verifique aqui. Exemplos: Um modelo básico de IntegratedML Vários exemplos no Open Exchange O uso do IntegratedML em sua solução de IRIS Analytics lhe garante um ponto extra de bônus. Uso do Gateway Python - 2 pontos O Gateway Python é um addon para a plataforma de dados InterSystems IRIS que lhe permite utilizar a linguagem Python no ambiente InterSystems IRIS: Executar um código Python arbitrário. Transferir dados da plataforma de dados InterSystems IRIS para o Python. Criar processos inteligentes de interoperabilidade com o Adaptador de Interoperabilidade Python. Armazenar, examinar, modificar e restaurar o contexto Python a partir da plataforma InterSystems IRIS. Aprenda mais sobre o Gateway Python. Você pode utilizar o modelo de Gateway Python, que inclui o IntegratedML também. Bônus de Interoperabilidade Uso do Business Process BPL ou de Business Rules - 2 pontos Uma das funcionalidades chave das Produções de Interoperabilidade da plataforma de dados InterSystems IRIS é o Business Process, que pode ser descrito utilizando o BPL (Business Process Language). Aprenda mais sobre o Business Processes na documentação. O Business Rule é uma abordagem no-code/low-code para gerenciamento da lógica de processamento das produções de interoperabilidade.Na plataforma de dados InterSystems IRIS você pode criar os Business Rules visualmente ou através de representação em ObjectScript. Você pode coletar o bônus de uso do Business Process BPL/Business Rule se você criar e utilizar estes components em sua produção de interoperabilidade. Exemplo de Business Rule Aprenda mais sobre Business Rules na documentação Uso de Adaptador de Interoperabilidade Customizado - 2 pontos Uma produção de Interoperabilidade na plataforma de dados InterSystems IRIS pode conter adaptadores de entrada e de saída que são utilizados para realizar a comunicação com sistemas externos através dos Business Services e Operations. Você pode utilizar os vários adaptadores nativos da solução (como para Arquivos, E-mail, SOAP, FTP, etc.) ou criar o seu próprio. Você ganha este bônus se você desenvolver o seu próprio adaptador (de entrada ou saída) e utilizá-lo em sua produção de interoperabilidade. Exemplo de um adaptador Aprenda mais sobre adaptadores Uso do Production EXtension (PEX) - 4 pontos O PEX é um framework para desenvolvimento de componentes da produção de interoperabilidade utilizando as linguagens Java ou .NET. Você ganha este bônus se você utilizar o PEX com JAVA ou .NET em sua produção de interoperabilidade. Demonstração do PEX Aprenda mais sobre o PEX na Documentação Uso do Mecanismo de Workflow - 2 pontos O Mecanismo de Workflow Engine é uma funcionalidade da Interoperabilidade da plataforma de dados InterSystems IRIS que pode ser utilizada para automatizar a distribuição de atividades entre usuários. Você ganha este bônus se você utilizar o Mecanismo de Workflow em sua produção de interoperabilidade. Aprenda mais sobre o Mecanismo de Workflow na Documentação. Existem módulos da comunidade como o WorkflowAPI e o WorkflowUI-ngx que disponibiliza uma agradável camada de IU em Angular para o Mecanismo de Workflow. Bônus FHIR Uso de APIs REST do Servidor FHIR - 3 pontos Você ganha este bônus se você utilizar o endpoint de API REST do Servidor FHIR da plataforma de dados para saúde InterSystems IRIS for Health. Você pode utilizar o modelo IRIS-FHIR que prepara o Servidor FHIR durante a construção da imagem docker. A documentação para a API FHIR 4.0.1 pode ser encontrada aqui. Aprenda mais na Documentação da plataforma InterSystems IRIS for Health. Uso do Esquema SQL FHIR - 2 pontos Você pode ganhar este bônus tecnológico se você utilizar o Esquema SQL FHIR em suas consultas SQL de sua aplicação. Você pode utilizar este esquema, por exemplo, para criar uma solução analítica FHIR. Utilize o HSFHIR_I0001_R para esquema de recursos e o esquema HSFHIR_I0001_S para realizar consultas de recursos em SQL. Verifique os exemplos no modelo. Transformações de Padrões de Saúde - 3 pontos A plataforma de dados para saúde InterSystems IRIS for Health contém módulos de interoperabilidade para saúde que auxiliam na execução de transformações de dados de diferentes padrões de troca de dados em saúde para FHIR e vice-versa. Realize transformações de CDA para FHIR, HL7v2 para FHIR, ou transformações entre qualquer outro padrão de saúde em sua aplicação para ganhar este bônus. Veja exemplos de transformações de HL7v2 para FHIR e CDA para FHIR . Aprenda mais na documentação. Esta lista de bônus está sujeita a mudanças. Fique atento!
Anúncio
Olga Zavrazhnova · Mar. 15, 2021

Desafio Global Masters: Grave um vídeo com seu testemunho sobre o InterSystems IRIS

Olá Desenvolvedores, Um novo e excitante desafio foi disponibilizado para os membros acima ou no nível "Advocate" : nós os desafiamos a gravar um vídeo de 30 a 60 segundos respondendo nossa pergunta: ➥ Qual o benefício que a plataforma de dados InterSystems IRIS lhe proporciona? 🎁 Recompensa de sua escolha para o desafio: US$50 em cartão presente (VISA/Amazon) ou 12.000 pontos! Clique neste link direto para o desafio para maiores informações. Notem que o link irá funcionar apenas para membros do Global Masters de níveis iguais ou acima de "Advocate". Mais informações sobre os níveis no Global Masters aqui. Nós adoraríamos receber a sua opinião! Nos vemos no Global Masters !!!
Artigo
Fernando Ferreira · Mar. 17, 2021

InterSystems IRIS Reports - 3º parte (Criação de relatórios em diversos formatos)

Olá Comunidade, Chegou a hora de iniciarmos o desenvolvimento dos relatórios utilizando o InterSystems IRIS Reports, powered by Logi Analytcs. Lembrando que na primeira parte do artigo falamos o que é o InterSystems IRIS Reports, e como ele vem facilitar a vida dos desenvolvedores na entrega de relatórios, e na segunda parte executamos o procedimento de instalação dos ambientes server e designer e o procedimento para fazer o download dos binários de instalação! Alguns conceitos importantes antes de iniciarmos o desenvolvimento sobre os tipos de relatórios que podemos desenvolver: Estáticos: Os relatórios e seus resultados não podem ser modificados pelo usuário final. O layout e os dados inclusos são definidos pelo desenvolvedor. Dinâmicos: Os relatórios podem ser modificados pelos usuários finais, como no estático o layout e dos dados são inclusos pelo desenvolvedor, porém o usuário final consegue modificá-los em tempo de execução. Ad Hoc – Relatórios e dados são construídos e modificados em tempo de execução pelo usuário final. Também podemos escolher diversos tipos de relatórios como: Padrão Faixa Horizontal Tabela com agrupamento acima Tabela com agrupamento a esquerda Tabela com agrupamento a esquerda acima Tabela com sumarização Gráficos Cruzado Etiqueta Tabular Formatação livre Calma segura a ansiedade, ainda precisamos falar de mais um conceito muito importante. Vamos falar agora do catálogo. O catálogo é o repositório para os relatórios e metadados, todo relatório está relacionado a um catálogo, ele pode ser utilizado por um ou mais relatórios, e sim, é onde fica as configurações com o banco de dados, as querys, fórmulas, parâmetros etc. Vamos iniciar agora então a primeira etapa do desenvolvimento, vamos criar o nosso catálogo, e a conexão com o banco de dados. Criando o catálogo: 1º Ao entrar no Designer vamos ver a tela “Quick Start”. 2º Na opção “Connect” clicar em InterSystems IRIS. 3º Agora vamos escolher a pasta e o nome do catálogo, clicar em “New Catalog”, escolher a pasta e o nome, clicar em OK. 4º Lembra que na instalação já incluímos o Driver JDBC? Por este motivo o campo Driver e porta já vem preenchidos, agora precisamos colocar o nome o IP ou nome servidor, Namespace, usuário e senha. Você pode testar a conexão clicando em “Test Connection “, e tudo estando certo é só clicar em OK. 5º Agora vamos adicionar as tabelas que serão utilizadas no nosso relatório ao catálogo. Você vai perceber algumas opções existentes: “Add Tables”, “Import SQL”, “Add Stored Procedures” e “Add more connection”. Aqui neste artigo vamos utilizar o “Add Tables”. Mas vamos fazer algumas observações importantes: Import SQL à É possível importar scripts SQL existentes para o catálogo. Add Stored Procedures à Você pode adicionar procedures existentes no IRIS. Add more connection à Você pode adicionar mais de um banco de dados IRIS para criação dos relatórios. Vamos continuar com a parametrização do catálogo. Clique em “Add Tables”. Agora podemos escolher as tabelas que vamos trabalhar! Selecione as tabelas e clique em “Add” e em seguida em “Done”. 6º Agora nesta etapa já temos a conexão com o IRIS e as tabelas que vamos trabalhar, chegou a hora de criar a query. Uma observação importante: Existem opções que são possíveis de parametrização conforme sua necessidade, como por exemplo, você pode habilitar/desabilitar as seguintes: Join on foreign Keys. Join on primary key with same name. Join on same name. No nosso tutorial vamos deixar todas as opções habilitadas. Vamos criar enfim a query. Clique com o botão direito na opção “Queries” que fica na aba “Data Source”. Agora clique em “New Query” e de um nome para sua query e em seguida clique em Ok. 7º Na janela seguinte – “Add tables/Views/Queries”, você precisa expandir a conexão JDBC para visualizar as tabelas a serem utilizadas. Uma observação importante! Como deixamos todas as opções de Joins habilitadas, a ordem que as tabelas são adicionadas é a ordem que o ambiente Designer utilizará para posicionar as tabelas à esquerda da clausula WHERE nas JOINS que serem criadas. Selecione as tabelas e clique na seta para adicionar as tabelas na aba: Selected Tabs/Views/Queries, Sim como vocês perceberam aqui é possível adicionar “Views” existentes no IRIS. Agora é só clicar em OK. 8º Chegamos agora no “Query Editor”! Aqui podemos verificar o JOIN criado, escolher os campos, criar fórmulas, criar campos calculados, verificar a sintaxe SQL, modificar a sintaxe SQL e fazer uma pré-visualização dos dados. Agora é só salvar o catálogo, clicando em “Save Catalog”. Pronto catálogo salvo! Vamos agora criar o relatório! Criando o relatório: Como mencionamos anteriormente, temos alguns padrões de relatórios, que podemos criar! Aqui vamos utilizar a opção “Page Report / Table Group Left Above.” 1º clique em “New/Page Report” e vamos escolher o “Table Group Left Above”. 2º Estamos no “Table Wizard!” Vale observar que o catálogo criado anteriormente é carregado automaticamente. Vamos escolher a query que criamos. É só selecionar a query e clicar em Next. 3º A próxima etapa é escolher os campos que serão exibidos no relatório, clicando no campo e na seta para direita, caso tenha escolhido algum campo de forma incorreta, é só clicar na seta para esquerda. Aqui podemos escolher a ordem que os campos irão aparecer no relatório, clicando nas setas para cima e para baixo com o campo selecionado, também podemos mudar o nome do campo que aparecerá no relatório. Essa opção é ótima, pois facilitamos a vida do usuário final trazendo um nome voltado ao negócio, ao invés do nome real do campo. Para alterar o nome clique na coluna “Display name”, seleciona o campo desejado, e digite o novo nome. Agora é só clicar em “Next”. Nesta opção do “Table Wizard” podemos agrupar os campos. É possível fazer um agrupamento em cascata e escolher a ordem, ascendente, descendente ou customizada. No nosso caso vamos deixar ascendente, com os campos escolhidos, clique em “Next”, para a próxima opção, a sumarização! Na sumarização vamos escolher um campo para a agregação que desejamos, que pode ser soma, média etc. vamos utilizar a sumarização para o agrupamento feito na etapa anterior. É possível escolher a posição do sumario, no cabeçalho ou no rodapé e em qual coluna, na de detalhe ou não de sumário! Após escolher as opções é só clicar em “Next.” Temos a opção agora de construir um gráfico junto ao relatório, que não vamos abordar neste artigo, vamos manter a opção “No Chart” selecionar e clicar em “Next”. Na opção “Filter”, podemos aplicar filtros nos campos. Não vamos trabalhar com filtro neste momento, vamos clicar em “Next”. Por fim podemos escolher o estilo do relatório desejado. Aqui vamos escolher o estilo “Commercial”, e clicar em “Finish”. Uma observação importante: Os estilos são 100% customizáveis, é permitido modificar a fonte de cada campo, aplicar condições e atribuir cores para os resultados, importar CSS existentes, importar imagens para o relatório. Pronto temos o relatório! O desenvolvedor pode fazer toda customização desejada no layout do relatório e visualizar o resultado antes de publicar para o usuário final. Para visualizar é só clicar na aba “View.” Nosso relatório está pronto para ser publicado no servidor! Vamos configurar a conexão do Designer com o servidor. Parametrização do Designer com o servidor. 1º Na barra superior clicar no botão “Options” que fica na aba “File”. 2º No menu de opções clicar na opção “Server”. 3º Adicionar na opção Host o IP ou nome do servidor do IRIS Reports Server. 4º Adicionar a porta – Lembrando que a Default é a 8888. 5º Manter o caminho default do Servlet Path que é à /jrserver. 6º Adicionar o usuário e senha, lembrando que o Default é admin/admin. Conexão com o servidor parametrizada, agora vamos publicar o catálogo e o relatório. Publicando o catálogo e relatório: 1º Na barra superior clicar no botão “Publish” que fica na aba File. 2º Selecione a opção “Publish Report to Server.” 3º Como estamos com o relatório e o catálogo abertos, ambos vêm selecionados. Caso não esteja aberto temos de selecionar o catálogo e o relatório salvos em sua pasta. Na opção “Publish Resource to” temos como escolher a pasta a ser publicada no servidor. Aqui vamos manter o default que é o caminho do usuário corrente, no nosso caso, usuário: admin. Clique em OK. 4º Agora temos com adicionar recursos adicionais, aqui vamos manter o estilo escolhido anteriormente: “Commercial.” Clique em OK. 5º Recebemos uma mensagem nos questionando se finalizamos a publicação, como já finalizamos podemos clicar em YES. Pronto temos o nosso relatório publicado no servidor! Agora vamos acessar o servidor via seu Browser. Lembrando que o caminho de acesso é http://ip-servidor:porta. Aqui na nosso tutorial mantivemos a porta padrão que é a 8888. Após digitar o usuário e senha, vamos entrar na opção “Open / My Folder”. Lembrando que o nosso relatório foi publicado no folder do usuário Admin. Ao acessar esta pasta podemos perceber o catálogo e o relatórios publicados. Vamos selecionar o relatório criado, e ao parar com o ponteiro do mouse em cima da seleção vão surgir alguns ícones, o primeiro que vamos usar aqui é o sinal de execução do relatório. Como resultado, o relatório será processado no Browser. No momento da visualização do relatório teremos alguns controladores disponíveis para o usuário, como por exemplo: à Permite exporta o relatório para outros formatos. à Enviar o relatório para ser impresso. à Criar agendamento de execução do relatório. à Aplicar filtro, nos campos disponíveis. Nesta etapa vamos exportar o relatório para formato PDF. Como prometido, agora vamos exportar o relatório que desenvolvemos em diversos formatos. Temos algumas opções de como exportar, uma delas já executamos anteriormente quando geramos o relatório em formato HTML no browser e utilizamos um componente disponível para o usuário onde é possível escolher um formato desejado pelo usuário. Vamos utilizar o processo de agendamento de execução do relatório e escolher o formato. Ao fazer o agendamento podemos escolher salvar o relatório em uma pasta do servidor ou uma pasta que o servidor tenha acesso, disponibilizar o relatório em um FTP ou disparar um e-mail por exemplo, mas também temos como gerar em uma pasta no servidor onde é possível gerar versões dos relatórios executados. Vamos utilizar o versionamento para a demonstração. Gerando relatório em vários formatos, através do agendamento: 1 º Selecione o relatório desejada, irão surgir diversos ícones. 2º Selecionar o ícone de agendamento. 3º Em “Schedule Name”, vamos dar um nome ao nosso agendamento. (não obrigatório). 4º Existem opções avançadas que não vamos tratar neste artigo, então partir para o próximo passo, clique em “Publish”. 5º Ao clicar em “Publish”, temos algumas opções: To Version. To Disk. To E-mail. To Printer. To Fax. To FTP. Vamos utilizar o “To Version”. Clicando em “To Version” vamos ter a opção: “Publish to Versioning System”, vamos habilitar está opção e clicar em “Next”. 6º Agora temos as opções como: Logi Report Result. Page Report Result. HTML. PDF. Exel. Text. RTF. XML. PostScript. Vamos escolher aqui os formatos: PDF / HTML / Excel. 7º A próxima opção é o local onde os arquivos serão gerados, temos: Built-in Version folder à É uma pasta default para armazenamento dos relatórios, quando utilizado a opção de versionamento. My Reports Folder à É a pasta do usuário corrente. Public Reports Folder à São pastas publicas que são disponibilizadas para usuários com permissão de acesso. Vamos manter aqui a “Built-in Version folder”, clique em “Next.” 8º Podemos decidir o horário da execução do relatório, ou executar imediatamente. Vamos utilizar a opção “Run this task immediately”, e clicar em “Finish”. 9º No menu superior podemos visualizar a opção “My Tasks”, vamos clicar lá. Em “My tasks” podemos visualizar os agendamentos a serem executados, os em execução e os já finalizados com seu respectivos status. 10º Clicando na opção “Completed”, clique no agendamento criado para visualizar o relatório gerado em diversos formatos. Nesta parte do artigo criamos o relatório, publicamos no servidor e executamos através da opção de agendamento a exportação do relatório em diversos formatos! Não é o máximo? Lembrando que na próxima parte do artigo vamos fazer a distribuição do relatório via e-mail para diversos destinatários utilizando o mesmo relatório como base! Obrigado e até a próxima parte! ficou muito bom!!! parabéns!!!!! Obrigado!
Anúncio
Evgeny Shvarov · Abr. 22, 2021

Bônus Tecnológico para os Projetos do Concurso de Ferramentas de Desenvolvimento InterSystems!

Olá Desenvolvedores! Disponibilizamos um conjunto de bônus tecnológicos para o Concurso de Ferramentas de Desenvolvimento para o InterSystems IRIS. E aqui você verifica como seu projeto os obteve: Projeto docker zpm Teste Unitário Demonstração Online Qualidade do Código Artigo na Comunidade de Desenvolvedores Vídeo no YouTube Bônus Total Nominal 2 2 2 3 2 2 3 16 Config-API 2 2 2 2 2 10 Server Manager for VSCode 2 2 4 Grafana Plugin for InterSystems 2 2 2 6 SSH for IRIS container 2 2 3 7 IntelliJ InterSystems 2 2 gj :: locate 2 2 3 7 helper-for-objectscript language extensions 2 2 2 2 3 11 IRIS REST Documentation 2 2 4 IRIS-easy ECP workbench 2 2 2 2 3 11 zpm-explorer 2 2 2 3 2 2 3 16 Git for IRIS 2 2 2 6 zapm-editor 2 2 2 6