Olá Flávio,

Referente ao processo de criação de namespace e banco de dados você pode criar um manifesto de instalação e executar ele para automatizar a criação de tarefas de configuração de ambiente.

Dê uma olhada na documentação do Caché:

Creating and Using an Installation Manifest | Caché Installation Guide | Caché & Ensemble 2018.1.4 – 2018.1.8 (intersystems.com)
 

Olá Flávio.

Conforme a resposta do post em inglês do @Danny Wijnschenk, você pode usar o arquivo .DAT como um backup mas a cópia para garantir a integridade da base deve se feita a frio. Desmontando a base e depois fazendo a cópia. Despois de copiar o arquivo para o local desejado é só criar uma nova base de dados e apontar o caminho para o diretório onde o arquivo está que ele será usado como arquivo de dados. Se for uma base existe, desmonte a base e depois substitua o arquivo .DAT e remonte.

Abraço.

Olá Igor,

Seu problema é falta de licença como descrito no log de erro:

Mensagem de erro: ERRO #5915: Não foi possível alocar uma licença

A licença da Community Edition permite apenas 5 conexões no máximo.

Faça um teste fechando Portal de Administração, Studio, VSCode ou qualquer outra ferramenta que possa esta conectada IRIS e depois teste seu programa java novamente.

@Igor Lampa, quando você faz o ALTER TABLE para renomear a tabela, em nível de classe ele vai alterar somente a definição do nome de tabela apontado pela @Danusa Calixto, porém por padrão é definido em "UPPERCASE", porém o SQL do IRIS é "case insensitive". Por ser "case insensitive" não vejo problema em o nome da tab ela estar em qualquer "case" seja.

Pode detalhar por quê da obrigatoriedade de estar em "lowercase"?
 

@Eduardo Nacimento 

Esse erro ocorre por conta de restrição de segurança como a @Djeniffer Greffin comentou. 

Para poder liberar as chamadas às classes que iniciam com "%" siga os passos da documentação.

https://docs.intersystems.com/ens201817/csp/docbook/DocBook.UI.Page.cls?KEY=GSOAP_WebService#GSOAP_service_catalog_page_access

Abraço.

Olá Juliano.

A forma mais rápida é  via exportação para arquivo CSV e utilizar um dos conectores existentes https://support.google.com/looker-studio/answer/7333350#zippy=%2Cneste-artigo

Desenvolver uma API JSON daí você pode usar um  conector de já existente como por exemplo https://windsor.ai/connect/json-google-data-studio-integration/.

Uma alterna total aderente às suas necessidades é desenvolver seu próprio conector. Não conheço a arquitetura, mas acredito que possa usar JDBC que pode facilitar um pouco. Segue documentação: https://developers.google.com/looker-studio/connector

Olá @Luiz Henrique Carvalho Martarelli 

Você pode sobrescrever o método OnPreDispatch da sua classe que herda de %CSP.REST

O Método OnPréDispatch é executado antes de que o método que conste na regra de roteamento seja executada.

Abaixo um exemplo onde faço o controle de CORS se o método da requisição for OPTION, e checo token de acesso para todos os endpoint exceto para o endpoints ping. 

O parâmetro pContinue quando verdadeiro sinaliza que o método que está na configuração de roteamento deverá ser executado, se falso responde para quem fez a chamada geralmente com algum HTTPStatus que indique o erro.

ClassMethod OnPreDispatch(pUrl As %String, pMethod As %String, ByRef pContinue As %Boolean) As %Status
{
  #Dim %request   As %CSP.Request     = %request
  #Dim %response  As %CSP.Response    = %response
  If (pMethod = "OPTIONS") // Controle de CORS
  {
    Set pContinue = 0
    //
    Do ..HandleDefaultOptionsRequest(pUrl)
    Do ..HandleDefaultCorsRequest(pUrl)
    //
    Return $System.Status.OK()
  }
  If (pUrl = "/ping")
  { 
    Set pContinue = 1
    //
    Return $System.Status.OK()
  }
  #Dim authorization  As %String          = $ZConvert(%request.GetCgiEnv("HTTP_AUTHORIZATION"), "L")
  #Dim token          As %String          = $Piece(authorization, " ", 2)
  #Dim erro           As %DynamicObject   = {"Erro:" : "Token de autorização é obrigatório"}
  If (token = "")
  {
    Set pContinue           = 0
    Set %response.Status    = ..#HTTP400BADREQUEST
    //
    Write erro.%ToJSON()
    //
    Return $System.Status.OK()
  }
  ElseIf (token '= "t0k3n_d3_v4lid@c@0")
  {
    Set erro                = {"Erro": "Token não autorizado!"}
    Set pContinue           = 0
    Set %response.Status    = ..#HTTP401UNAUTHORIZED
    //
    Write erro.%ToJSON()
    //
    Return $System.Status.OK()
  }
  Set pContinue = 1
  //
  Return $System.Status.OK()
}

Olá Rafaela,

Isso você consegue checar no log de auditoria, desde que habilitada e o evento de sistema "Routine Change" esteja ativado:

 

Estando ativo você pode consultar pelo próprio portal na página de do Log de Auditoria:

Se quiser pode também consultar a tabela diretamente um exemplo:

SELECT
  Namespace,
  UserName,
  UTCTimeStamp,
  Description
FROM
  %SYS.Audit
WHERE
  Event = 'RoutineChange'

Mais informações acesse a documentação: https://docs.intersystems.com/iris20221/csp/docbook/Doc.View.cls?KEY=AAUDIT

Lembrando: a consulta deve ser executada no namespace %SYS e que a data retornada está no formato UTC como o próprio nome já diz. Para converter a data use o método ConvertUTCtoLocal da classe %UTC

Parabéns pelo artigo Emily.

Uma correção no item 3 o parâmetro CONTENTTYPE está com um erro de digitação: aSpplication quando deveria ser application.

No item 4, por questão de segurança, (em ambiente produtivo ao menos) não é recomendado adicionar o %ALL como função do aplicativo, e sim uma função específica ao que necessário se acessar para que a aplicação funcione.