#ObjectScript

1 Seguidor · 131 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.

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.
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.

0
0 324
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".

0
0 102
Artigo Cristiano Silva · Abr. 27, 2023 6m read

InterSystems FAQ rubric

Neste artigo, apresentaremos como lidar com a situação: "Excluí acidentalmente uma global!"

Arquivos de backup e journals são usados para recuperar globais específicas que foram excluídas acidentalmente. A restauração é executada especificando as condições e restaurando registros do journal usando o utilitário ^ZJRNFILT. Dessa forma, você pode aplicar um backup pontual do banco de dados e até incluindo a exclusão de uma global específica para registros do journal que contêm as exclusões.

0
0 105
Artigo Heloisa Paiva · Mar. 10, 2023 3m read

Introdução

Esse artigo tem a intenção de ser um simples tutorial sobre como criar conexões ODBC e trabalhar com elas, já que eu achei o assunto um pouco confuso quando estava começando, mas tive pessoas incríveis que pegaram minha mão e me guiaram para conseguir, e eu acredito que todos merecem esse tipo de ajuda também.

Vou dividir cada pequena parte em seções, então sinta-se à vontade para pular para a que sentir necessidade, apesar de eu recomendar ler o texto na íntegra.

0
0 480
Artigo Danusa Calixto · Out. 27, 2022 15m read

Por que eu amo ObjectScript e por que eu acho que poderia amar Python ainda mais

 

Eu estava olhando o tópico de mensagens sobre o assunto "Desempenho ao construir uma string separada por vírgulas" e comecei a escrever uma resposta. No entanto, me distraí, a página foi atualizada e perdi meu texto. Não podia gastar tempo reescrevendo minha resposta, então comecei a escrever este documento em vez disso.

 

Comecei a escrever na linguagem MUMPS no início da minha carreira.

1
0 190
Artigo Danusa Calixto · Out. 10, 2022 1m read

Se estiver manipulando XML, muitas vezes ele pode ser não formatado para exibição humana.

Usando um pouco de magia XSLT você pode formatar o XML em apenas duas linhas de código...

ClassMethod Format(pXmlStream As %CharacterStream, Output pXmlStreamFormatted As %CharacterStream) As %Status
{
    set xslt=##class(%Dictionary.XDataDefinition).%OpenId(..%ClassName(1)_"||XSLT",-1,.sc)
    quit ##class(%XML.XSLT.Transformer).TransformStream(pXmlStream,xslt.Data,.pXmlStreamFormatted)
}
XData XSLT
{
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.
0
0 204
Artigo Danusa Calixto · Ago. 12, 2022 4m read

A combinação da sintaxe de objetos com SQL é um dos recursos legais no Object Script. No entanto, em um caso, forneceu resultados estranhos. Portanto, decidi isolar esse caso e descrevê-lo aqui.

Digamos que você precisa escrever um classmethod que atualiza uma única propriedade no disco. Geralmente, eu escreveria isso usando SQL, desta forma:

 

ClassMethod ActivateSQL(customerId) as %Status
{
   &sql(Update Test.Customer Set Active=1 Where ID=:customerId)
   If SQLCODE'=0 {
      Set exception = ##class(%Exception.SQL).CreateFromSQLCODE(SQLCODE, $Get(%msg))
      Quit exception.
0
0 127
Anúncio Angelo Bruno Braga · Mar. 31, 2022

 A InterSystems está feliz em anunciar a versão 2.0.0 do Servidor de Idiomas para VS Code. O Servidor de Idiomas aprimora a extensão VS Code para ObjectScript disponibilizando uma melhor coloração para sintaxes, documentação incorporada, conclusão de código e mais. Informações detalhadas estão disponíveis no arquivo README do repositório no GitHub. A versão 2.0.0 adiciona suporte para várias novas arquiteturas da plataforma incluindo Macs M1! Ela também reduz o tamanho do pacote, melhora a coloração no SQL e corrige uma série de problemas detalhados no CHANGELOG.

0
0 109
Anúncio Angelo Bruno Braga · Mar. 23, 2022

É um prazer anunciar o lançamento da versão 1.4.4 da extensão para VS Code, que contém as seguintes melhorias e correções. Os links irão levá-los para o problema  no GitHub que está sendo endereçado. Como sempre, se você já possuir a extensão instalada, o VS Code deverá atualizar automaticamente sua extensão. Se você é um novo usuário, utilize estas instruções para iniciar. 

Log de Mudanças

  • Melhorias
    • Compile assincronamente para evitar exceder o tempo limite (#890)
    • Adicione a configuração objectscript.explorer.
0
1 125
Pergunta Arian Botine · Mar. 19, 2022

Antes de mais nada, o exemplo abaixo trata-se da manutenção de um código legado e em uma nova implementação não usaria a ^CacheTemp dessa forma.

Em determinado momento na codificação, realizamos um $GET em uma variavel do tipo global na CacheTemp da seguinte forma:

Set dataHora = $GET(^CacheTemp.ResAnteriores("DataColeta",pUsuario,pSessao,paciente,objOs.%Id(),pProcedimento),"")

Sendo que a global, nesses termos, está <UNDEFINED>, porém em tempo de execução o retorno é um dump de memoria, fazendo com que nos logs de console (cconsole.

1
0 185
Artigo Rochael Ribeiro · Fev. 22, 2022 2m read

Pessoal !

Recentemente encontrei vários comandos ObjectScript de apenas uma linha na Comunidade de Desenvolvedores e achei que seria uma ótima ideia colecioná-los para não perdê-los!

Decidi então juntar alguns poucos casos, colocá-los em um projeto OEX, e compartilhá-los com vocês!

E aqui está como vocês podem utilizá-los:

1. Criar uma configuração cliente SSL:

set $namespace="%SYS", name="DefaultSSL" do:'##class(Security.SSLConfigs).Exists(name) ##class(Security.SSLConfigs).Create(name)

Útil se você precisar ler conteúdo de uma URL.

0
0 112
Anúncio Angelo Bruno Braga · Dez. 28, 2021

Olá Desenvolvedores,

Obrigado a todos pela participação no Advento do Código 2021 e por codificar em InterSystems ObjectScript! Estamos felizes em apresentar os ganhadores e distribuir os prêmios para todos ! 

E nossos aplausos vão para esses desenvolvedores: 

   @Kevin An (w/ repo)

   @Yuval Golan (w/ repo)

   @Oliver Wilms (w/ repo)

Também gostaríamos de recompensar outro desenvolvedor que conquistou o domínio sobre o Python Incorporado e realizou 25 desafios nele. Deem as boas vindas para:

   @Robert Cemper (w/ repo)

0
0 92
Artigo Yuri Marx · Nov. 30, 2021 3m read

O XData (https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls?KEY=GOBJ_XDATA) é um recurso poderoso para definir informações de documentação e metadados para classes e métodos. A classe% CSP.REST usa XDATA para mapear chamadas REST(https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls?KEY=GREST_csprest), portanto, neste artigo, você verá como usar XData em seus aplicativos como código, não apenas como documentação.

Quando você escreve comentários / definições XData, o IRIS os armazena em %Dictionary.ClassDefinition (para classes) e %Dictionary.

0
0 185
Artigo Larissa Prussak · Out. 26, 2021 2m read

As tecnologias da InterSystems são conhecidas por seus bancos de dados de alto desempenho, que suportam os sistemas e operações de muitas organizações. No entanto, um ingrediente chave para esse sucesso é a qualidade e a facilidade de manutenção de seu código.

A qualidade do código pode afetar tudo, desde a velocidade e facilidade de corrigir bugs e fazer melhorias, até o desempenho geral de sua organização e sua capacidade de chegar à frente no mercado.

Ao garantir que seu código seja sustentável, você pode reduzir aproximadamente 75% dos custos do ciclo de vida do sistema *. É por isso que, na George James Software, as soluções que construímos são sempre diretas e escritas em código de alta qualidade - porque sabemos que essa base sólida pode impactar positivamente o resto da sua organização.

Com um sistema que pode ser mantido, você pode reduzir a manutenção geral, pois qualquer problema que ocorra é significativamente mais rápido de identificar e corrigir. Isso significa que você está livre para alocar tempo e orçamento para melhorias, permitindo que você obtenha o máximo valor de suas aplicações e, em última análise, dê um melhor suporte à sua organização.

Fique atento às nossas próximas postagens sobre como é um sistema sustentável e as ferramentas que podem ajudá-lo a manter seu código sustentável, a fim de ajudá-lo a reduzir esses custos de manutenção.

0
0 86
Pergunta Davidson Espindola · Set. 15, 2021

Hello everyone
I use cache script, I would like to know from you if there is any function or class in the cache where I can get the start and end date of a given month:
Example: What is the first and last day of the month of February 2015.

Grateful.
Davidson

3
0 171
Artigo Andre Larsen Barbosa · Ago. 18, 2021 2m read

ObjectScript tem pelo menos três maneiras de lidar com erros (códigos de status, exceções, SQLCODE, etc.). A maior parte do código do sistema usa status, mas as exceções são mais fáceis de tratar por vários motivos. Trabalhando com código legado, você passa algum tempo traduzindo entre as diferentes técnicas. Eu uso muito esses trechos para referência. Esperançosamente, eles também são úteis para outras pessoas.  

 

///Status from SQLCODE:
set st = $$$ERROR($$$SQLError, SQLCODE, $g(%msg))  //embedded SQL
set st = $$$ERROR($$$SQLError, rs.%SQLCODE, $g(rs.
0
0 185
Artigo Larissa Prussak · Ago. 9, 2021 1m read

Olá desenvolvedores!

Só quero compartilhar uma prática recomendada antiga, mas sempre relevante, sobre a alteração de namespaces @Dmitry Maslennikov compartilhada comigo (de novo).

Considere o método:

classmethod DoSomethingInSYS() as %Status

{

set sc=$$$OK

set ns=$namespace

zn "%SYS"

// try-catch in case there will be an error

try {

// do something, e.g. config change

}

catch {}

 zn ns    ; returning back to the namespace we came in the routine

return sc

}

E com o novo $namespace, o método pode ser reescrito como:

classmethod DoSomethingInSYS() as %Status

{

set sc=$$$OK

new $namespace

set $namespace="%SYS"

// do something

return sc

}

Então! A diferença é que não precisamos alterar o namespace manualmente, pois ele voltará automaticamente assim que retornarmos o método.

e não precisamos do try-catch (pelo menos para esse propósito) também.

0
0 179
Artigo Andre Larsen Barbosa · Ago. 9, 2021 11m read

Neste artigo, vamos comparar as funções $Increment e $Sequence.

Em primeiro lugar, uma nota para os leitores que nunca ouviram falar de $Increment $Increment é uma função Caché ObjectScript que realiza uma operação atômica para incrementar seu argumento em 1 e retornar o valor resultante. Você só pode passar um nó de variável global ou local como um parâmetro para $Increment, não uma expressão arbitrária. $Increment é muito usado ao atribuir IDs sequenciais. Em tais casos, o parâmetro de $Increment é geralmente um nó global.

0
0 238
Artigo ROBSON SERPA DA ROSA · Jun. 28, 2021 5m read

Uma VIEW em SQL é basicamente uma instrução SQL preparada.
Deve ser executado e montado como qualquer outra consulta SQL.
VIEW MATERIALIZADA significa que o conteúdo é coletado antes das mãos e pode ser recuperado com bastante rapidez.
Eu vi o conceito primeiro com meu concorrente favorito chamado O * e eles fizeram muito barulho sobre isso.

  { favorite: because I could win every benchmark against them devil }

0
0 127