Artigo
Andre Larsen Barbosa · Mar. 4, 2021 5min de leitura

Day 5: Desenvolvendo com InterSystems Objects and SQL

Dia 5: Desenvolvendo com Objetos InterSystems e SQL Finalizei minha participação no Desenvolvimento com InterSystems Objects e SQL com Joel Solon. O curso é muito legal e vou compartilhar com vocês algumas dicas que recebi durante o último dia de treinamento. Dicas apresentadas no dia 5:

  1. O pacote% SYSTEM possui classes de utilidades gerais. Use $ system.class.Help () para listar os utilitários. As principais classes% SYSTEM são criptografadas (métodos de criptografia da indústria), OBJ para gerenciar classes e objetos, Segurança para métodos de segurança e SQL para usar a linguagem SQL.
  2. IRIS permite a validação das propriedades e argumentos usando MINVAL e MAXVAL para inteiro, FORMAT para data e hora, SCALE para decimal, MINLEN, MAXLEN, TRUNCATE, VALUELIST (restringe a entrada a uma lista de valores) e PATTERN para string. Exemplo: Method Print (name As% String (MAXLEN = 50)).
  3. Você pode criar novas validações e conversões de tipo de dados estendendo um tipo de dados como% String e usando DisplayToLogical () e LogicalToDisplay () para implementar novos comportamentos. É possível alterar o parâmetro de tipo de dados como o parâmetro PATTERN para alterar a validação de uma string.
  4. O IRIS usa o operador -> para fazer junções implícitas, por exemplo: selecione País-> Estados-> Condado em Simple.Places. Isso junta 3 tabelas relacionadas.
  5. Para criar uma referência entre classes / tabelas, use ForeignKey. Exemplo: ForeignKey CountryFK (Country) References Simple.Country () [OnDelete = setnull]. Existem as opções setnull para definir nulo para a tabela / classe do outro lado, cascata para propagar a exclusão, noaction para nenhuma ação e setdefault para configurar um valor padrão para a referência.
  6. Use% ConstructClone () para fazer um clone de um objeto e suas referências.
  7. Use SqlComputeCode para os campos calculados. Exemplo: (da documentação IRIS) Propriedade FullName As% String [SqlComputeCode = {set {*} = {FirstName} _ "" _ {LastName}}, SqlComputed];
  8. É possível automatizar testes usando o framework% UnitTest. Use% UnitTest.TestCase para definir casos de teste e% UnitTest.Manager para executar um conjunto de casos de teste. Para ver os resultados, vá para System Explorer> Ferramentas> Portal UnitTest. Consulte https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls?KEY=TUNT.
  9. IRIS oferece suporte a 2 coleções de tipos:
    1. Lista: chave baseada na posição começando em 1.
      1. Declaração: Estados de propriedade como lista de Simple.State.
      2. Get: country.States.GetAt (1)
      3. Insert: country.States.Insert (florida)
      4. Remove: country.States.RemoveAt (1)
      5. Count: country.States.Count ()
      6. Clear: country.States.Clear ()
      7. Next: country.States.GetNext (1) - para obter o item 2
      8. Loop: para i = 1: 1: country.States.Count () {write!, Country.States.GetAt (i)
    2. Array: chave baseada no valor associado.
      1. Declaration: Estados de propriedade como matriz de Simple.State.
      2. Get: country.States.GetAt ("FL")
      3. Insert: country.States.SetAt (florida, "FL")
      4. Remove: country.States.RemoveAt ("FL")
      5. Count: country.States.Count ()
      6. Clear: country.States.Clear ()
      7. Next: country.States.GetNext ("FL") - para obter o item GA
      8. Loop: set state = "" para {set val = country.States.GetNext (.state) quit: (state = "") write!, Val}
  1. Para criar relacionamentos entre classes, devemos:
    1. Pai / Filhos: Estados de relacionamento como Simple.State [cardinality = children, Inverse = Country]. O outro lado: País do relacionamento como Simple.Country [cardinality = parent, Inverse = Country].
    2. Um / Muitos: Estados de relacionamento como Simple.State [cardinality = many, Inverse = Country]. O outro lado: País do relacionamento como Simple.Country [cardinality = one, Inverse = Country].
  2. Um para um e muitos para muitos não são suportados. Um-para-um pode ser simulado e muitos-para-muitos podem ser feitos usando 2 muitos-para-um para uma tabela de relacionamento.
  3. Stream é um objeto que pode conter uma quantidade de dados maior que o limite das propriedades regulares, pode armazenar dados de caracteres (% Stream.GlobalCharacter) ou binários (% Stream.GlobalBinary). Use os seguintes métodos para ler / gravar dados:
    1. Escrever (texto): escrever no final da linha;
    2. WriteLine (texto): escreve para uma nova linha;
    3. Clear (): limpa o conteúdo do stream;
    4. CopyFrom (stream): copia de um stream e sobrescreve o conteúdo atual;
    5. Read (comprimento): ler caracteres limitados ao comprimento;
    6. ReadLine (comprimento): lê os caracteres na linha atual limitada ao comprimento;
    7. Rewind (): retorna para o início do stream;
    8. MoveToEnd (): move para o final do fluxo.
  4. Você pode usar gatilhos para fazer algo antes ou depois de um evento CRUD. Exemplo: Trigger T1 [Evento = INSERT, Time = AFTER, Order = 1, Foreach = row / object] {write your code}.
  5. O IRIS possui algumas funções frequentemente utilizadas:
    1. $ EXTRACT: obtenha uma substring - https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls... $
    2. FIND: obtém a posição de um valor passado como argumento - https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls? KEY = RCOS_ffind $
    3. LENGTH: obtenha o tamanho de uma string ou substring - https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls... $
    4. LIST: retornar / criar uma lista de elementos - https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls... $
    5. LISTDATA: retorna o elemento na lista por posição - https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls... $
    6. LISTFIND: retorna o índice de um elemento da lista - https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls... $
    7. LISTGET - obtenha um elemento da lista - https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls... $
    8. LISTLENGTH - obter o total de elementos na lista - https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls... $
    9. PIECE - retorna ou substitui uma substring usando um delimitador - https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls...

 

O curso foi muito bom e tem um rico conjunto de exercícios práticos. O curso também é importante para a preparação para a certificação de desenvolvedor IRIS. Consulte a agenda do curso em https://www.intersystems.com/support-learning/learning-services/classroo....

10
1 0 0 27
Log in or sign up to continue