Resolución de problemas de interfaces de usuario

En las secciones siguientes se muestran los problemas que pueden aparecer e información sobre las posibles soluciones.

Mensaje viewScope.context es nulo

Este mensaje puede aparecer cuando no se anula el registro de los escuchas de sucesos registrados. Por ejemplo, tiene una vista y registra los escuchas de sucesos de la vista en su manejador de sucesos load. El manejador de sucesos unload libera los recursos utilizados por la vista. Si no anula el registro de los escuchas de sucesos, es posible que intenten acceder a estos recursos, lo que provoca el mensaje viewScope.context is null .

Las vistas que están vinculadas a objetos complejos reinicializados pueden contener datos antiguos

Es posible que no se actualicen los datos de las vistas vinculadas a objetos completos si el flujo de tiempo de ejecución vuelve a un coach que contiene dichas vistas. Un ejemplo de objeto complejo es un objeto de negocio.

Para que la vista reconozca los cambios realizados en un objeto complejo, utilice una de estas técnicas:

  • Cree una llamada para capturar los cambios realizados en el objeto complejo:
    1. En el manejador de sucesos load de la vista, añada el código siguiente: this.context.binding.get("value").bindAll(this.myChange, this);
    2. Defina el manejador de sucesos myChange en la vista JavaScript. Añada el código para manejar los cambios de propiedades.
    3. En el manejador de sucesos change, invoque bindAll() para reenlazar con las propiedades. Este paso es necesario porque las suscripciones de enlace anteriores se pierden cuando se sustituye el objeto complejo.
  • Cree un distintivo para indicar que el objeto complejo ha cambiado:
    1. Añada una variable de tipo simple, tal como Boolean o String, al servicio de usuario.
    2. Enlace la variable a la vista como opción de configuración.
    3. Añada código de script del servidor para actualizar la variable cuando cambie el objeto complejo. El cambio de la variable de opción de configuración invoca el manejador de sucesos change de la vista.
    4. Añada código para gestionar los cambios realizados en el objeto complejo.

Actualización del kit de herramientas del sistema en automatizaciones de flujo de trabajo migradas

Cuando se utilizan coaches en una automatización de flujo de trabajo que se ha migrado desde una versión anterior del producto en un entorno de despliegue que está configurado con la raíz de contexto, se puede producir el siguiente mensaje de error:
Error: Unable to load /rest/bpm/wle/v1/service/1.3402b466-ea01-464c-bc00-317677d58a67 status:404
     Coach framework caught exception when calling Life cycle API load() on view div_1_1, Exception: TypeError: this.nlsMsgs is undefined

Se ha añadido soporte para la configuración de raíz de contexto personalizada en las últimas versiones del producto. Las automatizaciones de flujo de trabajo que se migran desde versiones anteriores pueden depender de versiones anteriores del kit de herramientas versiones.

Para garantizar interfaces de usuario predecibles y un comportamiento de artefacto coherente en las automatizaciones de flujo de trabajomigradas, actualice las dependencias de los kits de herramientas del sistema correspondientes a la versión más reciente.

Una tabla de una vista Sección con un diseño horizontal requiere un valor de anchura

Una vista Tabla representada en una sección de diseño horizontal puede ocupar todo el ancho de la página. Si el ancho de página no se ha especificado, otras vistas incluidas en el mismo diseño horizontal podrían quedar parcialmente representadas fuera del margen de la pantalla.

Para controlar la representación correcta de las vistas, especifique los valores de anchura en las propiedades Posicionamiento para que cada vista ocupe su anchura asignada dentro del diseño horizontal. Por ejemplo, si incluye dos campos de texto y una tabla en el diseño horizontal, puede establecer sus anchuras con 25%, 25% y 50%, respectivamente. Esto garantiza que las tres vistas ocupen las anchuras que tienen asignadas.

Para obtener más información, consulte Tabla.

Controla la anchura de las ventanas emergentes utilizando variables utilizando las variables de arranque

Las variables LESS de simulación de muestreo se utilizan para controlar el aspecto visual de las vistas. Para personalizar el aspecto visual, puede especificar valores para las variables de arranque en el archivo de tema personalizado. Por ejemplo, puede personalizar el ancho de las ventanas de emergencia estableciendo o modificando el valor existente de la variable @popover-max-width en el archivo de tema personalizado. Consulte la especificación del programa de arranque para una lista de propiedades personalizables.

Utilice ID de control exclusivos en las vistas dentro de un recuadro de contenido y las vistas del contenedor del recuadro de contenido

Para garantizar que el contenido de una vista de plantilla receptiva se pueda reutilizar, normalmente el contenido se coloca dentro de un recuadro de contenido. El recuadro de contenido es un marcador de posición del contenido que define la vista de contenedor. A medida que se añaden vistas al recuadro de contenido, se definen su configuración y sus propiedades de visibilidad a nivel del recuadro de contenido. Si el diseño de la plantilla contiene otras vistas, que ha colocado fuera del recuadro de contenido, defina sus valores a nivel de la vista del contenedor.

En tiempo de ejecución, al cambiar el tamaño de la pantalla, por ejemplo, al girar el dispositivo móvil, podría notar que los elementos de interfaz de usuario se comportaran de forma inesperada. Esto sucede si se ha utilizado el mismo ID de control para una vista dentro del recuadro de contenido y una vista fuera del recuadro de contenido. Utilizar el mismo ID de control para dos instancias de vista provoca que los valores definidos en el contenido añadido (dentro del recuadro de contenido) sobrescriban los valores de la instancia de vista en el diseño del contenedor de recuadro de contenido, o viceversa.

Además, si las dos instancias de vista mencionadas tienen valores de receptividad definidos, si se utiliza el mismo ID de control para ambas, podría generarse un error similar al del ejemplo siguiente en la consola:
dojo.js?build=201707181206:2 TypeError: Cannot read property '0' of undefined
              at Object._448.resolveDeviceSpecificOptionValue (dojo.js?build=201707181206:2)
              at Object.engine.initConfig (VM1685
              debugcf?locale=en&attachPt=INSWidgetID&devDbg=true&containerRef=2063.7f0ae305-bbc5-45dd-b19f…:229)
              at Object._448.start (dojo.js?build=201707181206:2)    at VM1685
              debugcf?locale=en&attachPt=INSWidgetID&devDbg=true&containerRef=2063.7f0ae305-bbc5-45dd-b19f…:299
              at _1031 (dojo.js?build=201707181206:2)    at Function._102e [as _onQEmpty]
              (dojo.js?build=201707181206:2)    at _88f (dojo.js?build=201707181206:2)
              at HTMLDocument._891 (dojo.js?build=201707181206:2)

Para evitar este comportamiento, asegúrese de que los ID de control sean exclusivos en las vistas del recuadro de contenido y las vistas del contenedor del recuadro de contenido. Para obtener más información sobre los recuadros de contenido, consulte Recuadro de contenido.