ir ao artigo Cristiano Silva · Nov. 22, 2023 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)
ir ao artigo Cristiano Silva · Nov. 4, 2023 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.
ir ao artigo Cristiano Silva · Out. 11, 2023 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.
ir ao artigo Cristiano Silva · Out. 11, 2023 Hello Davidson, You can use SMP System Operation->Globals: Select all globals that you want to export and click on Export Button. Othe way is using $System.OBJ.Export utility
ir ao artigo Cristiano Silva · Out. 3, 2023 @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"?
ir ao artigo Cristiano Silva · Jun. 28, 2023 Obigado à todos. Foi um grande prazer em participar do concurso. Vamos continuar publicando e fazer a comunidade em Português crescer cada vez mais.
ir ao artigo Cristiano Silva · Jun. 1, 2023 Fala Paulão, dá uma olhada neste artigo https://community.intersystems.com/post/remote-code-execution-intersystems-cache-0. Acho que é o que você precisa.
ir ao artigo Cristiano Silva · Abr. 28, 2023 Olá @Danusa Calixto Estou preparando alguma coisa. Espero que dê liga....
ir ao artigo Cristiano Silva · Abr. 25, 2023 @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.
ir ao artigo Cristiano Silva · Mar. 22, 2023 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
ir ao artigo Cristiano Silva · Dez. 6, 2022 Olá @thales fernando alonso Infelizmente não temos muita literatura sobre as tecnologias da InterSystems. Baixe nestes links: Conhecendo o Caché e Introdução a Orientação a Objetos escritos pelo Amir (hoje Diretor de Soluções e Arquitetura da InterSystems). Espero que ajude.
ir ao artigo Cristiano Silva · Dez. 6, 2022 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() }
ir ao artigo Cristiano Silva · Nov. 11, 2022 Olá @Rafaela Moreira, Uma vez que você tenha escrito seus testes eles podem ser executados em qualquer ambiente. Veja se o tutorial da documentação pode te ajudar: Caché Unit Test Tutorial Link direto para Test Automation
ir ao artigo Cristiano Silva · Out. 24, 2022 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
ir ao artigo Cristiano Silva · Set. 5, 2022 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.