Voy a poner la respuesta que me han dado en el grupo general y que es una solución muy buena. Muchas gracias @Julian Matthews


Hola Kurro.


No estoy seguro de una función incorporada para esto, pero si quisieras tener la tuya propia:

Class Demo.FunctionSets.Example
{

ClassMethod Format(InputString As%String, Params... As%String) As%String
{
	Set OutputString = InputString
	For i = 1 : 1 : $GET(Params, 0){
		Set OutputString = $Replace(OutputString,"{"_i_"}",Params(i))
	}
	
	Quit OutputString
}

}

Y entonces:

Write ##Class(Demo.FunctionSets.example).Format("My name is {1} and I'm {2} years","Kurro","18")My name is Kurro and I'm 18 years

Podeis ver la respuesta original en el siguiente enlace

Salutic Soluciones ya tiene equipo para participar en el Hackaton de AutoML.... vamos a por todas !!!!

Los que podáis, os animo a participar también

A por el próximo evento!!! nos lo pasamos genial y animo a todos a participar. Una experiencia única para conocernos y conectar con otros desarrolladores. Consultar dudas y aprender unos de los otros.

Prometo no participar en el próximo Kahoot y darle la oportunidad a otros 😜

Muchas gracias a los dos.

Efectivamente, va a realizarse en un entorno de producción, por lo que la parada técnica de la producción para hacer el backup externo debe de ser muy corto.

Afortunadamente no tiene mucho mapeo con otras librerías, pero sería un restore en el mismo servidor, no se como se podría hacer un backup y hacer el restore en el mismo servidor y en otro namespace.

Vale, creo que ya he entendido lo de la copia de seguridad.

Se puede hacer el restore de la base de datos pero que lo deje en otro directorio, que sería donde debe de apuntar mi nuevo namespace.

No hay nada como leer dos veces las respuestas 🤣

Hola,

El %JSONIGNORENULL lo que te hace es que si el valor viene como nulo, para los strings lo marca como cadena vacía.

El problema es que si guardamos la cadena con el JSon, y desde el terminal hago lo mismo de importación nos da el siguiente mensaje de error.

w pResponse.%JSONImport(content)

e^%JSONImportInternal+57^Kurro.app.Msg.Search.Response.1^1$e^%JSONImport+12^%JSON.Adaptor.1^1)e^zLoop+16^|"USER"|WebTerminal.Core.1^1)x^zLoop+16^|"USER"|WebTerminal.Core.1^1d^^^0

Como ves, no nos da muchas pistas de por donde va el error. Probando varias combinaciones, hemos llegado a que funcione si cambian el nodo de actParameters por [] en lugar de null.

Ya hemos hablado con el proveedor para que en esos caso, nos devuelva un array vacío en lugar de un valor nulo.

Muchas gracias por tu respuesta Luis Angel

Gracias a la comunidad, tengo un par de respuestas que son válidas. Por si os interesa:

Para poder capturar el SessionId

Method OnProcessInput(
    pDocIn As%RegisteredObject,
    Output pDocOut As%RegisteredObject) As%Status
{
    // here you need to pass the jobid from the %CSP.REST that is invoking the BSset tJobId = pDocIn.JobID
    // your code hereset^CallApi($CLASSNAME(),tJobId,"sessionid") = ..%SessionIdset pDocOut = pDocIn
    quit$$$OK
}

El evento que controla cuando ha terminado de procesar la llamada OnEndRequest

Ver las réplicas de Guillaume Rongier y de Vitaliy Serdtsev

Añado la respuesta que me han dado en el community en inglés:

Hola Kurro!

Gracias por tu artículo y por probar IntegratedML. Con suerte, le indicaremos la dirección correcta:

1. IntegratedML no es "solo redes neuronales", sino más bien una canalización de autoML (consulte la Guía de AutoML) que primero prueba varios métodos de ML en un subconjunto de datos y luego realiza una ejecución de entrenamiento utilizando los datos completos utilizando el método de ML (redes neuronales). , regresión logística, bosques aleatorios, etc.) que obtuvieron mejores resultados en el subconjunto de datos. De hecho, de forma predeterminada, para problemas de regresión como este, solo usamos XGBRegressor, por lo que en este caso el método que utiliza IntegratedML no es una red neuronal en absoluto.

2. Solo es necesario llamar al "TRAIN MODEL" una vez por conjunto de datos de entrenamiento. El bucle sobre los ejemplos se maneja dentro de esa llamada.

3. Este es potencialmente un conjunto de datos demasiado pequeño para producir resultados confiables. IntegratedML divide los datos internamente en subconjuntos de entrenamiento y prueba, por lo que probablemente obtendrá mejores resultados si tiene al menos 100 ejemplos aleatorios.

Atentamente,

tomás

Nota: Hemo hecho el siguiente código para capturar el error nativo... pero es un poco código chapucero.

// run the querySet tSC = ..Adapter.ExecuteUpdateParmArray(.nrows,SQL,.param)

// Check if there is any errorIf$$$ISERR(tSC)
{
	Set msgError = $System.Status.GetErrorText(tSC) 
	// Check here if the native error code is 2601 (Cannot insert duplicate key row into object 'MYPATIENTS' with unique index 'UQ_UNIQUE_INDEX')if$FIND(msgError, "[2601]") > 0
	{
	    // This is a insert/update that violates the unique code// remove duplicate recordquit$$$OK
	}
	else
	{
	    // Generic error... thow excepctionquit tSC
	}
}

Hola Laura,

Esa idea me la han sugerido también, y no es del todo descabellada. Pero me gustaría evitar levantar una conexión ODBC o JDBC contra si misma, por lo que estoy buscando alguna alternativa.... Igual miro como funciona internamente el componente e intento sobreescribir algunos método para que la query la realice contra una tabla interna.

Muchas gracias por tu aportación.

Muchas gracias,

Pero mi mayor problema es poder saber que zona es con la información que me da el proveedor, porque solo pone el código de la zona horaría, en este caso CEST.

Si me llega otro código diferente, no se cual es su zona.

Es un artículo muy interesante y explica todo paso a paso.

Artículos así son los que hacen comunidad.

Muchas gracias a ti por crear esta obra de arte.