Oi @Davi Massaru Teixeira Muta 

Traduzir artigos ajuda muito a comunidade (além de ganhar pontos)

Mas, para traduzir artigos tem um procedimento a ser feito. Dentro do artigo original, selecione o idioma para o qual quer traduzir: 

 

Ao selecionar o idioma desejado, aparecerá as seguintes opções

 
A forma como você fez a tradução não deixa vinculado o seu texto ao texto original, você criou um novo artigo e colocou uma nota no final do seu texto. O autor original não tem conhecimento quando essa forma é utilizada. 

Fazendo a tradução da forma correta, você deixa os créditos para o autor do texto original, ele tem ciência e tudo fica vinculado na comunidade. 

Espero ter conseguido transmitir a forma correta para isso. 

Bom dia @Arian Botine 

Até onde sei, o Studio não terá mais suporte de novas features. Apenas correções de bugs. 
Todas as novidades estarão agora presentes no VSCode. 

Alguns links que pode ser úteis para vocês:

https://community.intersystems.com/post/intersystems-joins-open-source-o...

https://community.intersystems.com/post/objectscript-extension-vs-code-r...

Você está implicitamente utilizando o método %Library.SqlQuery:Func(), no qual, como corretamente @Robert Cemper apontou, $get() é usado.

Você pode fazer dessa outra maneira:

Query GetInfo(pObject AS Kurro.MyClassAs %SQLQuery(CONTAINID 1ROWSPEC "IdList:%String,IdProcess:%String,Duration:%String") [ SqlProc ]
{
    SELECT IdListIdProcessDuration
    FROM Kurro.MyClass
    WHERE KeyProcess :pObject.KeyProcess
    AND CodeSpecialist :pObject.CodeSpecialist
    AND CodeProvider :pObject.CodeProvider
    AND CodeCenter :pObject.CodeCenter
    AND "Date" :pObject.Date
}


set obj=##class(Kurro.MyClass).%New()
set obj.KeyProcess="1033004-1#"
set obj.CodeSpecialist "surgery"
set obj.CodeProvider "PR002"
set obj.CodeCenter "CENTER-01"
set obj.Date $ZDATETIME($ZDATETIMEH("2021-04-30 15:45:00",3,1),3,1)

set st=##class(%SQL.Statement).%New()
set sc=st.%PrepareClassQuery("Kurro.MyClass","GetInfo")
  if $$$ISERR(sc{write "%PrepareClassQuery failed:" do $System.Status.DisplayError(scquit}
set result=st.%Execute(obj)
do result.%Display()

resposta por @Vitaliy.Serdtsev

É um assunto interessante.
#2) Seu segundo exemplo não vai funcionar, porque não está passando um parâmetro de chamada.
#1) Não está previsto o uso de propriedades de objetos como variáveis de host em SQL

O código dá erro no método Execute gerado.

set tResult tStatement.%Execute($g(pObject.KeyProcess),$g(pObject.CodeSpecialist),$g(pObject.CodeProvider),$g(pObject.CodeCenter),$g(pObject.Date))

$GET para propriedades de objeto não está implementado. É definido pela classe e está sempre lá. 

Mas é necessário e faz sentido para propriedades multidimensionais!  

Isto é válido para ObjectScript e não está relacionado a SQL.
Mas, escrevendo o código na mão, você pode usar $g(NOTHING,pObject.KeyProcess
O gerador simplesmente não faz isso.
 

Workaround #1: Mexer diretamente no código gerado. Não recomendado.
Workaround #2:  Mova suas propriedades com uma função auxiliar para variáveis locais e ajuste sua query a essas variáveis


example helper (with obj or id):
ClassMethod FillProp(pObject As Kurro.MyClassAs %Boolean SqlName FILLPSqlProc ]
{
if '$isObject(pObjectset obj=##class(Kurro.MyClass).%OpenId(pObject)
else  set obj=pObject
set %Kurro("kp")=obj.KeyProcess
     ,%Kurro("sp")= obj.CodeSpecialist
     ,%Kurro("pr")= obj.CodeProvider
     ,%Kurro("cs")= obj.CodeCenter
    ,%Kurro("dt")= obj.Date
quit 1
}

 

Query exemplo:

Query GetInfoRcc(objid As %IntegerAs %SQLQuery(CONTAINID 0ROWSPEC "IdList:%String,IdProcess:%String,Duration:%String")
{
    SELECT IdListIdProcessDuration
    FROM Kurro.MyClass
    WHERE KeyProcess :%Kurro("kp")
    AND CodeSpecialist :%Kurro("sp")
    AND CodeProvider :%Kurro("pr")
    AND CodeCenter :%Kurro("cs")
    AND "Date" :%Kurro("dt")
   AND FILLP(:objid) = 1
}

Funciona como esperado.

resposta by @Robert Cemper 

É uma boa ideia, mas eu não tem o ID da linha.

Minha ideia era usar o objeto como um parâmetro e passar um monte de valores, e a query leria estes valores, ao invés de passá-los uma a um nos parâmetros.

Eu mudei minha query com todos os parâmetros que eu preciso para executá-la

Query GetInfo(pKeyProcess As %String, pCodeSpecialist As %String, pCodeProvider As %String, pCodeCenter As %String, pDate as %TimeStamp) As %SQLQuery(CONTAINID = 1, ROWSPEC = "IdList:%String,IdProcess:%String,Duration:%String")
{
    SELECT IdList, IdProcess, Duration
    FROM Kurro.MyClass
    WHERE KeyProcess = :pKeyProcess
    AND CodeSpecialist = :pCodeSpecialist
    AND CodeProvider = :pCodeProvider
    AND CodeCenter = :pCodeCenter
    AND Date = :pDate
}

Funciona, mas ainda preciso passar todos os parâmetros. Eu queria criar uma classe para passar todos os parâmetros, tipo um método em c#, e tentar usa-lo.

Valeu galera.

resposta por @Kurro Lopez 

Talvez passando o ID do objeto em algo parecido com isso:

Query GetInfo(refId As %String) As %SQLQuery(CONTAINID = 1, ROWSPEC = "IdList:%String,IdProcess:%String,Duration:%String")
{
    SELECT list.IdList, list.IdProcess, list.Duration
    FROM Kurro.MyClass list
    JOIN Kurro.MyClass ref on ref.ID = :refId
    AND ref.KeyProcess = list.KeyProcess
    AND ref.CodeSpecialist = list.CodeSpecialist
    AND ref.CodeProvider = list.CodeProvider
    AND ref.CodeCenter = list.CodeCenter
    AND ref.Date = list.Date
}

resposta por @Timothy Leavitt 

Parabéns a todos os desenvolvedores que dedicaram um tempo de suas vidas para criarem aplicações, artigos, videos. 

Parabéns a toda a equipe que mantém a Community, trabalhando para que cada vez mais e mais desenvolvedores se interessem pela Comunidade, competições, ajudando assim todos nós.

Até uma próxima oportunidade

Fala @Fernando Beira tudo bem?

Cara, não sei te dizer o real motivo dessa mudança. Mas a InterSystems andou fazendo algumas enquetes sobre IDEs utilizadas no começo de 2020. Em Abril de 2020, o Raj Singh - Product Manager, Developer Experience anunciou que a InterSystems se juntaria ao time que tocava a extensão do VSCode. 

https://community.intersystems.com/post/intersystems-joins-open-source-objectscript-vs-code-effort 

Durante a Global Summit 2020, foi lançada a versão 1.0 da extensão

https://community.intersystems.com/post/objectscript-extension-vs-code-reaches-10

Assim como você mencionou, o VSCode ainda não oferece suporte para aos wizards de criação de adapters, BPL, etc.

Essas funcionalidades parecem estar já nos planos da equipe. Aqui um link para o SOAP Wizard e como fazer um "workaround" até a funcionalidade não sair. 

https://github.com/intersystems-community/vscode-objectscript/issues/325

Esse é o que eu tenho conhecimento a respeito dos esforços do VSCode. 

Mas, como experiência/opinião pessoal, fiquei muito feliz com a aposta no VSCode ao invés do Atelier. 

Sempre achei o Atelier/Eclipse uma IDE super pesada para o que oferece. laugh

Abraços e espero ter ajudado