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
ir a la publicación Kurro Lopez · 25 mayo, 2020 La App es: Native Api Contest Template Nota: El 28/05/2020 ha cambiado de app y ahora es IRIS OData Client Y la otra tarjeta, se la regalo a @Félix de Federico
ir a la publicación Kurro Lopez · 15 mayo, 2020 Muchas gracias por la aportación. En una sola linea tienes la fórmula del DNI. En este caso, también gestiona el NIE y se aprovecha la misma función. Por otro lado, soy mas partidiario del código mas amplio y legible, para tener un facil mantenimiento, e intentar evitar las contracciones de comandos. Un saludo,Francisco
ir a la publicación Kurro Lopez · 20 abr, 2020 Hola, Hereda de FTPService, pero el error lo está dando el RecordMap cuando hace el save. Es código mio, tengo sobreescrito el método OnProcessInput para que, en lugar de invocar al BP por cada una de las filas que recupera, lo haga al final tras haber guardado cada una de los registros en la clase RecordMap. Ya lo hemos desbloqueado borrando registros en la tabla de LockTable pero no se como se gestiona esta tabla. ¿Estos elementos se eliminan solos? ¿Cómo se pueden eliminar todos a la vez, en lugar de uno a uno?
ir a la publicación Kurro Lopez · 9 abr, 2020 Buenas David. Estoy muy interesado en cual es la mejor opción o proceso de exportación e implantación de producciones y su correspondiente mantenimiento con un cliente. Actualmente estamos usando la exportación de producción que proporciona Ensemble, pero es bastante tediosa (hay que ir uno a uno seleccionando los ficheros) y no permite seleccionar ni macros ni includes. Pero te permite hacer instalaciones con rollback y es mas controlado si se produce algún error en la implantación. Además, lo combinamos con ficheros installer.cls para instalar configuraciones, lookup tables, etc... Si existe alguna opción mejor o profesional, bienvenida sean. Un saludo,Kurro
ir a la publicación Kurro Lopez · 18 mar, 2020 Me alegro que haya sido una tontería, si te digo la verdad, ni me había fijado que era settings.json :( Un saludo y happy coding!!!
ir a la publicación Kurro Lopez · 16 mar, 2020 Entiendo que el setting.config de cada uno de los folders contiene el nombre del namespace a que se quiere desarrollar. Por defecto siempre se carga en namespace "USER", si no puede conectarse con el servidor y no encuentra el namespace indicado se conecta al namespace por defecto. Como comentas, tienes un namespace con ese nombre. Prueba a seleccionar el folder "scr" e intenta crear un fichero (prueba.cls) y ver que te cambia el namespace correcto
ir a la publicación Kurro Lopez · 10 mar, 2020 Los despliegues lo gestionamos utilizando la exportación de producción y añadiendo todos los elementos que queremos incluir en la instalación. Para incluir mas cosas en la instalación utilizamos un fichero Installer.class extendiendo de %Projection.AbstractProjection
ir a la publicación Kurro Lopez · 10 mar, 2020 Hola Jorge. Bienvenido a la comunidad. En mi empresa tenemos varios proyectos separados por NAMESPACES y cada proyecto tiene un repositorio independiente. Pero a lo mejor te podría servir la forma que lo tenemos distribuido, luego tener el mismo repositorio (GIT, TFS, etc..) para todo el conjunto: 1) Crear un directorio común con todos los namespaces, cada namespace tendrá su propia carpeta 2) Guardar en el directorio principal (Healthshare) el area de trabajo, pero cada carpeta que no sea visible (luego explico el por qué) { "folders": [ { "path": "." }, { "name": "Common", "path": "./COMMON" }, { "name": "Customers", "path": "./CUSTOMERS" }, { "name": "Documents", "path": "./DOCUMENTS" }, { "name": "Hospital", "path": "./HOSPITAL" } ], "settings": { "files.exclude": { "**/.git": true, "Common": true, "Customers": true, "Documents": true, "Hospital": true } }} Quedará el siguiente aspecto en VSCode 3) Configuramos el VSCode ObjectScript de @Dmitry Maslennikov de la siguiente forma: en MyWork.code-workspace. Esta sería la configuración general de conexión con el servidor de Ensemble / ObjectScript "settings": { "files.exclude": { "**/.git": true, "Common": true, "Customers": true, "Documents": true, "Hospital": true }, "objectscript.conn": { "active": true, "host": "localhost", "port": 57772, "username": "_SYSTEM", "password": "SYS", "https": false, "links": {} } 4) En cada uno de los directorios, añadimos una configuración por carpeta con el nombre del namespace que esté trabajando cada subconjunto { "objectscript.conn": { "ns": "COMMON" }} De esta forma cada workspace trabajará con su conexión correspondiente A la hora de subir el repositorio, se sube en Git como cualquier otro fichero, incluso se tendría el equipo totalmente actualizado dado que se podría sincronizar los otros NAMESPACE a la vez y tener actualizado el entorno de desarrollo. Espero que esta forma de distribuición te sirva como nos está sirviendo a nosotros. Un saludo, Francisco López