#Dicas e truques

1 Seguidor · 78 Postagens

Pedaços da experiência tecnológica InterSystems que resolve algum problema específico de maneira elegante ou incomum.

Novo
Artigo Evandro Wendt · Mar. 23 4m read

Aqui na InterSystems, frequentemente lidamos com conjuntos massivos de dados estruturados. Não é incomum ver clientes com tabelas contendo mais de 100 campos e mais de 1 bilhão de linhas, cada tabela totalizando centenas de GB de dados. Agora imagine fazer o join de duas ou três dessas tabelas, com um esquema que não foi otimizado para esse caso de uso específico. Só por diversão, vamos supor que você tenha 10 anos de dados de EMR de 20 hospitais diferentes em todo o seu estado, e você foi encarregado de encontrar….

0
0 2
Novo
Artigo Evandro Wendt · Mar. 23 1m read

Rubrica de FAQ da InterSystems

Se você quiser gerar um erro personalizado arbitrário dentro de um bloco TRY, pode passar uma exceção com um throw, da seguinte forma. No exemplo abaixo, um erro personalizado é gerado se Stcount for menor que 1.

Class User.Test
{

ClassMethod ExceptionTest()
 {
    try
    {
      // : some codes
      if (Stcount<1) {
          throw ##class(%Exception.General).%New("User-defined error", "5001", "location", "Data at location error")
          // User-created errors are 5001 and above
      }
    }
    catch ex
    {
      write "Errors #", ex.
0
0 4
Artigo Evandro Wendt · Mar. 5 1m read

Olá a todos,

Criei um método para calcular a idade de uma pessoa, ou a idade de um processo, contrato ou qualquer outra coisa que você quiser.

/// Calculate the age from date of birth and other date (by default shoud be today).
/// <b>dateOfBird</b> Date of birth in cache format. ie. $ZDH("1972-01-01",3)
/// <b>day</b> Date to calculate to. ie: $H
ClassMethod AgeAt(dateOfBirth, day) As %Integer{
    quit:dateOfBirth=""
    quit:day=""
    
    set yeardob=$SYSTEM.SQL.DATEPART("year",dateOfBirth)
    set yearday=$SYSTEM.SQL.
0
0 13