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 🤞🏼
Muito bem Comunidade 👏🏽
Continuem mandando suas idéias 💡 em 2024.
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 ?