Artículo
· 7 ago, 2023 Lectura de 2 min

Creación de subtítulos personalizados para la configuración de componentes de interoperabilidad

Al crear componentes personalizados, a menudo es necesario agregar propiedades a la clase para configuraciones adicionales que se usarán en la inicialización o en la operación del componente. El nombre de la propiedad en sí no siempre es muy descriptivo, por lo que es una ventaja tener una pantalla de título personalizada con el campo.

En Caché, era bastante sencillo:

TEST> Set ^CacheMsg("EnsColumns","en-us","<property name>") = "<caption>"

Pero implica un poco más de esfuerzo en IRIS...

En IRIS, los nombres de subtítulos del componente y las propiedades de producción se almacenan en ^IRIS.Msg("EnsColumns"), que normalmente se asigna desde la base de datos ENSLIB de solo lectura.

No se pueden actualizar en ENSLIB a menos que los montéis en lectura y escritura, pero no creo que sea una buena idea; cualquier cambio allí puede borrarse en una actualización posterior.

Sin embargo, podéis crear vuestra propia copia de ese subíndice en una base de datos de lectura y escritura de vuestra elección y mapearla desde allí:

TEST> merge ^|"^^/isc/iris/db/testdata/"|IRIS.Msg("EnsColumns")=^|"^^/isc/iris/sys/mgr/enslib/"|IRIS.Msg("EnsColumns")

Sustituid las rutas a las bases de datos de origen y de destino por las que siguen a "^^" en el ejemplo anterior.

Luego, cambiad la asignación en el Portal de Gestión a través de Administración | Configuración | Configuración del sistema | Namespaces, seleccionando el enlace Global Mappings para vuestro namespace. Después, editad el mapeo para IRIS.Msg("EnsColumns"), cambiándolo de ENSLIB al nombre de la base de datos en la que se copió el subíndice:

Haced clic en OK y luego en Guardar cambios.

Cread las entradas para vuestros nuevos nombres de subtítulos:

HICG> Set ^IRIS.Msg("EnsColumns","<locale>","property name") = "caption name"

En EE. UU., "<locale>" es "en-us"... Vuestra configuración regional puede variar 😉

Aquí hay un ejemplo. Considerad esta propiedad personalizada:

/// Facility Code for the Receiving Facility
Property FacilityCode As %String;
Parameter SETTINGS = "FacilityCode:Basic";

En vuestra producción, normalmente aparecería así:

Para hacerlo más descriptivo, estableced el nombre del título en ^IRIS.Msg:

TEST> Set ^IRIS.Msg("EnsColumns","en-us","FacilityCode")="Receiving System Facility Code"

Ahora deberíais ver la propiedad del Business Host en vuestra producción, mostrada con el nuevo título:

NOTA IMPORTANTE: El inconveniente de este proceso es que, al hacer un upgrade de versión, cualquier nueva configuración agregada por InterSystems no se mostrará con los nuevos datos de subtítulos proporcionados, por lo que tendréis que fusionar nuevamente desde ENSLIB para actualizar vuestra copia mapeada.

Comentarios (0)1
Inicie sesión o regístrese para continuar