Muito bom! 👏
Parabéns aos vencedores @Andre Larsen Barbosa, @Yuri Marx e @Heloisa Paiva
- Efetue login para postar comentários
Muito bom! 👏
Parabéns aos vencedores @Andre Larsen Barbosa, @Yuri Marx e @Heloisa Paiva
Olá Igor.
Uma alternativa é usar a chave de definição de classe SqlTableName .
Ex.:
Class MyApp.Person Extends %Persistent [ SqlTableName = DBTable ] { //class members }https://docs.intersystems.com/iris20211/csp/docbook/Doc.View.cls?KEY=ROBJ_class_sqltablename
Muito bem, Flavio! 👏
Compartilhe com os seus colegas também.
Olá Gustavo!
Seja bem-vindo a nossa comunidade de desenvolvedores e ao mundo InterSystems.
Vou listar aqui algumas dicas para você:
1- Verifique em nossa documentação online publica, que é separada por tópicos, quais os assuntos que mais te interessam e que você quer se aprofundar. Lá você irá encontrar todas as explicações e descrições.
https://docs.intersystems.com/
2- No nosso portal de aprendizagem, InterSystems Learning, você vai encontrar vários videos tutoriais e cursos que ensinam como desenvolver e aprimorar os conhecimentos das plataformas InterSystems. Minha sugestão para iniciantes é explorar os caminhos de aprendizado, disponível no catálogo na página principal do portal. Segue o link direto: InterSystems Learning Paths . Os "caminhos" são separados por tópicos de interesse: arquitetura, desenvolvimento, integração, etc ...
Se você precisar de outras orientações é só postar aqui que a Comunidade te responde 😉
Espero ter ajudado.
Boa sorte e divirta-se!
Muito bem Comunidade 👏🏽
Continuem mandando suas idéias 💡 em 2024.
Oi Daniella.
Tudo bem?
Seguem algumas considerações que observei a respeito do seu código:
1) O erro <NOROTINE> indica que a rotina YYHORG002 não existe. Isso pode ter ocorrido se a YYHORG002 não foi compilada. Você verificou se a classe foi compilada com sucesso?
2) Se você está trabalhando com classes, por quê não está chamando ao método usando a orientação a objetos, e sim chamando a rotina gerada através da compilação ?
Exemplo:
substituir de: set sc = $$ValidarPalindromo^YYHORG001(str)
para : set sc = ##class(YYHORG001).ValidarPolindromo(str)
Observações:
1ª - está faltando na assinatura do método o tipo do retorno:
Ex1: Method ValidarPalindromo(string) As %Status
Ex2: Method CalcularMedia(string, ByRef retMedia) As %Status (ou o tipo desejado)
2ª - No método CalcularMedia(string, ByRef retMedia) o segundo parâmetro retMedia está definido com passagem por referencia, e na chamada da rotina você deveria usar o ponto (.) antes da variável: .retMedia
3ª - No mesmo método você está retornando o mesmo valor de retMedia que foi enviado na chamada ao método. Está correto? Desta forma as variáveis media e retMedia terão sempre o mesmo valor.
4ª - Se os métodos não são de instancia (que acessam dados do objeto da classe) e são chamados como métodos de operação, eles devem ser definidos como ClassMethod para serem acessados diretamente sem instanciar a classe.
Espero ter ajudado!
Boa sorte 🤞🏼
Oi Daniella,
Referente a sua questão eu tinha feito essa pergunta na mensagem anterior:
1) O erro <NOROTINE> indica que a rotina YYHORG002 não existe. Isso pode ter ocorrido se a YYHORG002 não foi compilada. Você verificou se a classe foi compilada com sucesso?
Você verificou ?
Boa tarde, Igor.
Pode passar mais informações a respeito dessa troca de ambiente, teve alteração de sistema operacional? teve migração da versão do IRIS também? Como foi feito a montagem do banco no novo servidor ?
O erro está ocorrendo nas rotinas de consultas em cache.
Existe uma documentação com instruções para migração de versão, se for o seu caso sugiro verificar: https://docs.intersystems.com/iris20232/csp/docbook/DocBook.UI.Page.cls…
Verifiquei que um chamado foi aberto e a solução retornada no mesmo dia. O chamado já se encontra fechado.
Parabéns a todos os participantes 🎉
E em especial aos participantes do 🇧🇷 que estão arrasando nos representando nos concursos da Comunidade.
@Henry Pereira Pereira, @José Pereira, @Henrique Dias Dias , @Davi Massaru Teixeira Muta, @Lucas Fernandes
Excelente trabalho!
Só fera 👏🏽🤓💪🏽
Oi Jenifer,
Você tentou usar o argumento de restrição %NOJOURN?
Talvez você tenha o resultado que está buscando.
Tenta aí e me avisa se funcionou 😉
Parabéns aos participantes e vencedores! 🥳
Hi Davidson.
As far as I know, the IP shown in IRIS is the one provided by the operating system. It is not possible to make any changes in IRIS.
The format shown in your example follows the IPV6 protocol standard, where: "Addresses written in eight groups of four hexadecimal digits, separated by colons (:)" . You can check the page for more info: https://pt.wikipedia.org/wiki/IPv6#:~:text=Os%20endere%C3%A7os%20IPv6%20s%C3%A3o%20normalmente,por%20exemplo%2C%20o%20mais%20pr%C3%B3ximo.
I also found this link with a related topic.
https://serverfault.com/questions/408667/how-do-i-disable-ipv4-mapped-ipv6
Maybe it will help you.
Boa tarde, Marcio.
Não sei se vc fez teste, mas eu tentaria executar a mesma sentença sem o uso das aspas (" ").
select * from pedido@CacheDB;
Bom dia, Marcio.
Você encontrou registro do erro nos logs do Caché (cconsole, erros de app)?
Em relação aos privilégios de acesso, você verificou se está habilitado corretamente para o Caché ser acessado pelo dblink?
Encontrei um artigo (antigo) que pode te ajudar com os pré-requisitos para a criação e execução de um dblink. Apesar de ser sobre o Oracle, pode de dar alguma dica! 💡
https://www.devmedia.com.br/criacao-de-database-links/2748
Olá Igor.
Toda vez que é efetuado algum UPDATE em registros da tabela, o mesmo entra em Lock durante o processo de atualização, justamente para não permitir que mais de um processo tente atualizar o mesmo registro ao mesmo tempo.
Conforme você mesmo mencionou: "Esse erro ocorre quando há mais de uma cópia sendo feita simultanemanente. Além disso, percebemos erros de locking, em outras operações mais básicas como edição de registros."
Recomendo verificar na documentação o tópico sobre concorrência, que pode te ajudar a identificar a forma mais apropriada para tratar o seu caso:
Object Concurrency Options:
https://docs.intersystems.com/iris20243/csp/docbook/DocBook.UI.Page.cls?KEY=GOBJ_concurrency
Depois retorna aqui pra gente saber se você conseguiu resolver ou não 😉
Igor,
Não sei te dizer se existe uma forma semelhante do Cahé funcionar como no Postgre, já que você mencionou que o registro está em edição. Isso até me soa estranho não ocorrer problemas de concorrência no registro no Postgre.
Sobre o gerenciamento dos locks você pode verificar essa documentação Managing the Lock Table. Também recomendo a verificação de outra parte esclarecedora sobre este tema: Locking and Concurrency Control
Boa sorte!
Olá Luis,
Você pode utilizar a função $ZCONVERT (ObjectScript) para efetuar a conversão para o modo desejado antes da gravação ou da leitura. Verifique a lista de tabelas de tradução.
Recomendo também que você verifique as configurações de instalação referentes a localização:
Acrescentando ... encontrei essas questões relacionadas ao seu tema na comunidade.
https://community.intersystems.com/post/utf-8-translation-issue-within-iris
https://community.intersystems.com/post/managing-utf-8-characters-database-rest-application
Dá uma olhada. Nas respostas tem dicas e explicações. Pode te ajudar! 😉
Olá Davidson.
A classe persistente que contem as informações das contas de usuários do sistema é a Security.Users no namespace %SYS.
A propriedade que contem a informação se o usuário está habilitado a logar no sistema é a Enabled, com os valores:
0 - Disable login.
1 - Enable login.
Você encontrará mais informações a respeito das contas de usuários em User Accounts.
É importante lembrar que para acessar esta tabela é necessário ter privilégios de administrador do sistema.
Oi Edilson,
Você quer fazer isso através de uma página CSP? É isso ???
De qualquer forma o servidor IRIS vai precisar ter acesso ao local/pasta onde o arquivo está.
Não tenho código pronto para compartilhar, mas tenho algumas idéias que podem ser úteis.
Em um ambiente windows você pode efetuar essa transferencia como uma cópia do arquivo se a pasta estiver mapeada no servidor do IRIS. É uma opção. Veja como trabalhar com o objeto %File . Você poderá manipular o arquivo a partir de um método criado no IRIS.
Outra maneira é usando FTP , desde que você consiga estabelecer uma sessão com um servidor FTP de dentro do InterSystems IRIS.
Você também pode enviar o conteúdo do arquivo (file stream/binário) como entrada para algum serviço ou API criada no IRIS para receber este tipo de dado e efetuar o salvamento local. Para essa opção o servidor de origem do arquivo deverá acionar o serviço do IRIS submetendo o conteúdo como parâmetro. Ou ainda através de uma produção de interoperabilidade utilizando o File Inbound Adapter.
Espero que ajude.
Muito bem @Larissa Prussak ! 👏🏽
Olá Comunidade! Estarei esperando por vocês ... quem vai ???
Reconhecimento muito merecido @Henry Pereira ! Parabéns 🤩
Você manda muito bem! 👍🏽
Obrigada por toda sua colaboração e dedicação à Comunidade.

Mandou muito bem @Henry Pereira ! 🎉