ir a la publicación Kurro Lopez · 2 sep, 2021 Muchas gracias @Esther Sanchez Disfrutando al máximo los regalos.
ir a la publicación Kurro Lopez · 23 ago, 2021 Si os gusta algún artículo, os animo a que voteis Recordad que algunos artículos también se han traducido al español, el artículo al que hay que votar es el que está en el Community en inglés o directamente desde la el enlace del concurso. Un saludo,Kurro Lopez
ir a la publicación Kurro Lopez · 23 jul, 2021 Pues me he quedado corto... el "Supercode" ha ganado 17 veces... que crack Henrique Gonçalves Dias
ir a la publicación Kurro Lopez · 23 jul, 2021 Han sido mas o menos 10 concursos... como mucho serán 10, pero como también se dan el premio de la comunidad... me la juego ... 15 tiene el "supercode"
ir a la publicación Kurro Lopez · 17 mayo, 2021 (Respuesta de @Eduard Lebedyuk) Ver enlace original en https://community.intersystems.com/post/how-automatically-test-deepsee-p... Aquí algunas ideas Recupera una lista de pivots Por cada elemento Obtén el MDX Intenta ejecutar el MDX Si falla, guarda el error Añade/visualiza los errores Debería de ser factible, DeepSee API tiene todas las funciones necesarias para hacerlo
ir a la publicación Kurro Lopez · 13 mayo, 2021 Hola, Os comento las respuestas obtenidas en el community en inglés. Adjunto también el enlace a la respuesta original. Respuesta de @Robert Cemper https://community.intersystems.com/post/query-method-class-persistent-us... #2) El segundo ejemplo no puede funcionar, principalmente porque no pasa un parámetro en la llamada #1) NO está previsto utilizar propiedades de objeto vomo variables del lengiaje principal en SQL El código falla en el métode Execute generado set tResult = tStatement.%Execute($g(pObject.KeyProcess),$g(pObject.CodeSpecialist),$g(pObject.CodeProvider),$g(pObject.CodeCenter),$g(pObject.Date)) El método $GET object-property simplemente no está implementado. Está definido por la clase y siempre está ahí, pero es necesario y tiene sentido para propiedades multidimensionados Esto es válido para ObjectScript como tal y no está relacionado con SQL.Es como tener un método $g(NOTHING, pObkect.KeyProcess)... osea, nada Alternativas: Manipular directamente el código generado. No recomendado Mover las propiedades con una función auxiliar a variables loclaes y ajusta la consulta con esas variables ClassMethod FillProp(pObject As Kurro.MyClass) As %Boolean [ SqlName = FILLP, SqlProc ] { if '$isObject(pObject) set 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 } Y la invocación sería de esta forma: Query GetInfoRcc(objid As %Integer) As %SQLQuery(CONTAINID = 0, ROWSPEC = "IdList:%String,IdProcess:%String,Duration:%String") { SELECT IdList, IdProcess, Duration 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 } Respuesta de @Vitaliy.Serdtsev https://community.intersystems.com/post/query-method-class-persistent-us... Tal y como ha comentado Robert, el problema está en el $GET(), por lo que en lugar de utilizar el método %Library.SqlQuery:Func(), utilizar el PrepareClaseQuery Query GetInfo(pObject AS Kurro.MyClass) As %SQLQuery(CONTAINID = 1, ROWSPEC = "IdList:%String,IdProcess:%String,Duration:%String") [ SqlProc ] { SELECT IdList, IdProcess, Duration 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(sc) quit} set result=st.%Execute(obj) do result.%Display() He utilizado la última respuesta para solucionar mi problema y funciona muy bien Mucha gracias a los dos por estas respuestas. Un saludo,Kurro
ir a la publicación Kurro Lopez · 11 mayo, 2021 Me ha parecido genial, pero me parece que en la pregunta de cuantas películas de la saga Star Wars hay hasta el momento es incorrecta. No pongo respuesta por no hacer spoiler
ir a la publicación Kurro Lopez · 16 abr, 2021 Genial... Yo personalmente los retos que mas me gustan son los artículos y los Quiz, que hay que responder a preguntas, y si fallas... no hay puntos :) Un reto en español, para la comunidad hispano hablante como un concurso o publicar artículos sería bueno para la comunidad. Un saludo
ir a la publicación Kurro Lopez · 11 mar, 2021 Usando las trazas: set ^ISCSOAP("LogFile")="c:\temp\SOAP.log"set ^ISCSOAP("Log")="ios" He visto que la respuesta era la del servidor y es como si no estuviera llegando al servicio. La configuración que tenía era como esta Al poner toda la ruta en el campo "Web Service URL" ha empezado a responder correctamente http://myserver.com/path/service Tenemos implementados otros WS y han funcionado correctamente indicando el servicio en el otro campo, pero creo que son por lo que son del tipo http://myserver.com/path/server.asmx Este servicio está creado en java y está desplegado en JBoss Gracias por tu ayuda. Un saludo,Kurro
ir a la publicación Kurro Lopez · 26 feb, 2021 Gracias nuevamente, Hace tiempo publiqué un artículo parecido de como copiar parcialmente un objeto en otro. Muy parecido a lo que has mandado. Copiar parte de las propiedades de un objeto a otro
ir a la publicación Kurro Lopez · 25 feb, 2021 Gracias Alberto. Puede que sea por la versión de Caché, dado que estamos usando la 2017.2.1 $ZV: Cache for Windows (x86-64) 2017.2.1 (Build 801_3U) Thu Apr 12 2018 10:02:23 EDT Product version: Ensemble 2017.1 Hay muchas cosas que están funcionando bien en IRIS, y esperamos que pronto nuestro cliente haga la migración a IRIS, pero por ahora tenemos que hacer "malabarismos" con estas cosas. Al final lo he tenido que mapear a mano una vez recibido los datos. Un saludo, Kurro
ir a la publicación Kurro Lopez · 29 ene, 2021 Muchas gracias Alberto, me ha venido genial. Un saludo,Kurro
ir a la publicación Kurro Lopez · 9 oct, 2020 Me parece una buena idea. Quería sacar la certificación este año, y lo del Virtual Summit me ha venido de lujo. Muchas gracias David. Un saludo,Kurro
ir a la publicación Kurro Lopez · 26 ago, 2020 Buenas, en el foro en inglés me han dado varias soluciones y os expongo la que he tomado finalmente He añadido un nuevo método en la clase Request Method Find(item As LabCenter) { for i=1:1:..ListCenter.Count(){ set tmp=..ListCenter.GetAt(i) if tmp.LabId=item.LabId, tmp.Center=item.Center, tmp.Code=item.Code return i } quit 0 } De este modo, encuentro mi Lab-Center > set obj=##class(ListLabCenter).%OpenId(1) > zw obj obj=<OBJECT REFERENCE>[2@ListLabCenter] +----------------- general information --------------- | oref value: 2 | class name: ListLabCenter | %%OID: $lb("1","ListLabCenter") | reference count: 2 +----------------- attribute values ------------------ | %Concurrency = 1 <Set> +----------------- swizzled references --------------- | i%ListCenter = "" | i%ListCenter(1) = $lb($lb("A08829848","A088298480001","")) | i%ListCenter(2) = $lb($lb("A08829848","A088298480002","")) | i%ListCenter(3) = $lb($lb("A08829848","A088298480003","")) | i%ListCenter(4) = $lb($lb("U66700196","U667001960002","")) | i%ListCenter(5) = $lb($lb("U66700196","U667001960003","")) | r%ListCenter = "1@%Collection.ListOfObj" | r%ListCenter(1) = "3@LabCenter" +----------------------------------------------------- > set objFind = ##class(LabCenter).%New() > set objFind.LabId="A08829848" > set objFind.Center="A088298480003" > zw objFind objFind=<OBJECT REFERENCE>[5@LabCenter] +----------------- general information --------------- | oref value: 5 | class name: LabCenter | reference count: 2 +----------------- attribute values ------------------ | Center = "A088298480003" | Code = "" | LabId = "A08829848" +----------------------------------------------------- > w obj.Find(objFind) 3 > set objFindFake = ##class(LabCenter).%New() > set objFindFake.LabId="FAKE" > set objFindFake.Center="A088298480003" > w obj.Find(objFindFake) 0 Un saludo a todos
ir a la publicación Kurro Lopez · 13 jul, 2020 Recuerda, puedes usar los comandos ESC que funcionarán en ambos entornos Échale un vistazo a este link sobre las secuencias Ansi ESC http://ascii-table.com/ansi-escape-sequences.php Buena suerte. Un saludo,Kurro López
ir a la publicación Kurro Lopez · 13 jul, 2020 Efectivamente, El problema está en el backspace ($c(8,......)) porque en una simulación en HTML no es reconocido ese caracter. Prueba a cambiar por esta linea: f r v#1 q:(v?.1n) w " !no number", $c(27,91)_12_"D" Esto sería la sentencia ESC[12D que sería lo mismo pero el WebTerminal si sabría interpretarlo Espero que te sirva de mucha ayuda Un saludo, Kurro López
ir a la publicación Kurro Lopez · 2 jun, 2020 Muchas gracias y felicidades a @Jacobo Rios Bordas y @Carlos Collazo Fernández por su premio.
ir a la publicación Kurro Lopez · 25 mayo, 2020 No te preocupes, que si me toca te compro un libro en Amazon