Sintaxis de Indicación de Interface Usuario

Contenido

Ejemplos de Funcionamiento

Notas Técnicas

Formato de Título de Mapa de Entrada

Creación de una Sección

Inclusión de Fragmento de Mapa

Creación de una Lista Desplegable

Ocultamiento Condicional de Elementos

Protección Condicional de Elementos

Activación de Comportamiento de Elementos Dependientes

Control de Destino de Presentación

Generación de un Área de Texto

Modificación de los Valores por Defecto de la Referencia de Clave Foránea

Supresión de Formato Automático de Números

Capitalización Automática de los Datos de Entrada

Ejemplos de Funcionamiento

Para obtener ejemplos de funcionamiento de la funcionalidad de uiHint, consulte los siguientes objetos de negocio:

Objetos de Negocio con Claves Asignadas por Usuario

En los siguientes ejemplos, se ilustran los patrones que se usan para activar uiHints en un objeto con una clave especificada por usuario.

  • F1-OutcomeStyleLookup. Este Objeto de Negocio de consulta extensible no requiere la transición de estado, pero sí autoriza acciones de duplicación y supresión.
  • F1-TodoSumEmailTyp. Este tipo de solicitud ilustra las indicaciones requeridas para que se soporte la transición de estado en un mapa de despliegue.
  • F1-WebSvc. Este Objeto de Negocio de servicio web es un buen ejemplo de la administración de los requisitos complejos de JavaScript. Tanto los mapas de entrada como los de despliegue tienen una funcionalidad que requiere JavaScript especializado.

Objeto de Negocio con Clave Generada por Sistema

En el siguiente ejemplo, se ilustra el patrón que se usa para activar las uiHints en un objeto con una clave generada por sistema.

  • F1-GenericAttachment. Este Objeto de Negocio de anexo tiene una clave asignada por sistema, la cual requiere el siguiente manejo especial:
    • F1-AttachmentMain. Esta es el área de datos de la sección principal que contiene los elementos comunes a todos los anexos, incluida la clave, el objeto de negocio y la versión. Dado que esta área de datos se usa para definir la sección principal de los mapas generados, la implementación puede extender la sección principal del mapa mediante una funcionalidad de extensión de área de datos.
    • F1-AttachmentActions. Este mapa de acciones de registro contiene las acciones standard (Editar y Suprimir) además de acciones personalizadas usadas únicamente por los anexos (Visualizar y Cargar).
    • F1-AttachmentIDFrag. Este mapa de información de registro contiene la clave primaria del anexo.

Script de Servicio de Mapa de Despliegue

Los scripts de servicio de mapa de despliegue pueden tener soporte completo mediante la generación dinámica de HTML. Sin embargo, para ayudar a eliminar la necesidad de que exista un script de servicio de despliegue, la funcionalidad de uiHint autocontenida está diseñada para escribir el estado del objeto de negocio y determinar las transiciones de estado válidas. Por lo tanto, se han eliminado los dos motivos más comunes para crear un script de servicio de despliegue.

Un motivo típico para usar un pre-script de despliegue sería si tiene un fragmento de mapa embebido que contiene un esquema de servicio de negocio. El script de servicio de despliegue se puede usar para invocar al servicio de negocio. Tanto el fragmento de mapa como el script de servicio de despliegue deben declarar el esquema de servicio de negocio para que se soporte este escenario.

Advertencia: La zona que se usa para desplegar el mapa del objeto debe tener un script de derivación, como F1-GncDsMpDZ o F1-GenDss, que invoque un script de servicio de despliegue para el objeto de negocio si se lo ha definido como opción de Objeto de Negocio, pero no se requiere una opción de Objeto de Negocio de mapa de despliegue explícito. Además, el esquema del script de servicio de despliegue debe estar activado para la funcionalidad de uiHint, ya que la zona presenta dinámicamente el esquema del script, no el esquema del Objeto de Negocio.
  • F1-ExcelSpreadsheet. Este Objeto de Negocio de anexo tiene un script de servicio de despliegue que se usa para manipular el objeto de negocio de anexo antes de desplegarlo:
  • F1-AttchDtlU. Este esquema del script de servicio de mapa de despliegue se ha definido con el espacio de nombre uiHint, y se le generará un mapa de despliegue.

Script de Servicio de Procesamiento Previo de Mantenimiento

Los scripts de servicio de procesamiento previo de mantenimiento se pueden usar con uiHints.

  • F1-ExcelSpreadsheet. Este Objeto de Negocio de anexo tiene un script de servicio de procesamiento previo de mantenimiento que se usa para manipular el objeto de negocio de anexo antes de que se presente el mapa de mantenimiento:
  • F1-AttchPre. Este esquema del script de servicio de procesamiento previo imita a un esquema de mapa de mantenimiento con elementos de acción y boGroup embebidos. Se lo invoca antes de que se presente el mapa de mantenimiento.

Script de Servicio de Procesamiento Posterior de Mantenimiento

Los scripts de servicio de procesamiento posterior de mantenimiento se pueden usar con indicaciones de UI.

  • F1-ExcelSpreadsheet. Este Objeto de Negocio de anexo tiene un script de servicio de procesamiento posterior de mantenimiento que se usa para manipular el objeto de negocio de anexo antes de que se presente el mapa de mantenimiento:
  • F1-AttchPost. Este esquema del script de servicio de procesamiento posterior imita a un esquema de mapa de mantenimiento con elementos de acción y boGroup embebidos. Se lo invoca después de que se presente el mapa de mantenimiento.

Notas Técnicas

Los siguientes requerimientos previos se deben cumplir para que se soporte la generación dinámica de HTML:

Requerimientos del Esquema

Para que se soporte la generación automática de Interface de Usuario, el esquema de objeto de negocio debe contener lo siguiente:

  • <schema xmlns:uiHint="http://oracle.com/ouafUIHints">. El nodo de esquema debe asignar el nombre de espacio uiHint.
  • isPrimeKey="true". Se debe identificar cada elemento del esquema de objeto de negocio que forma parte de la clave primaria.

Requerimientos del Script de Mantenimiento

El script de mantenimiento del Objeto de Mantenimiento debe estar activado para la generación dinámica.

PRECAUCIÓN: El script de Asistente de Proceso de Negocios de mantenimiento del objeto de negocio debe declararse como una Opción de Objeto de Mantenimiento para que la funcionalidad de mantenimiento de uiHint sea eficaz.

Si el script ejecuta F1-BOProc, lo más probable es que no se necesite ninguna funcionalidad especial. Sin embargo, si el script de mantenimiento contiene su propia llamada a F1-GetValOpt, se requiere la siguiente sentencia antes de la llamada:

move 'false' to "F1-GetBOOpts/input/maintenanceMapRequired";
performScript 'F1-GetValOpt';

Después de la llamada a F1-GetValOpt, se debe incluir la siguiente lógica para realizar la declaración dinámica del esquema de mapa si el objeto de negocio no tiene un mapa de mantenimiento propio:

 // Perform Main Processing
if ("F1-GetBOOpts/output/maintenanceMap = $BLANK")
  declareBOWithBOGroup "$bo" as 'map_schema';
else
  declareMap "F1-GetBOOpts/output/maintenanceMap" as 'map_schema';
end-if;

Formato de Título de Mapa de Entrada

Nota: En este tema, el término campo" se usa para referirse al concepto genérico de desplegar y capturar datos en un campo y también para referirse al objeto de metadatos suministrado en el producto para definir Campos. Para referirse a este último, se usa el término "Campo de Metadatos".

Se puede usar un elemento de uiHint para crear un título para un mapa de mantenimiento. El título se imprimirá solamente en el mapa de mantenimiento, no en el mapa de despliegue. Se imprimirá centrado en la primera línea del mapa, con estilo de encabezado.

Sintaxis Descripción Ejemplos

<uiHint:title mdField=" "/>

Despliega la etiqueta de un campo de metadatos de referencia como título.

<schema xmlns:uiHint="http://oracle.com/ouafUIHints">
<uiHint:title 
   mdField="STATUS_RSN_LBL"/>
   ...
</schema>

<uiHint:title text=" "/>

Despliega el texto indicado como título. (No se debe usar este mecanismo si se soportan múltiples idiomas).

<schema xmlns:uiHint="http://oracle.com/ouafUIHints">
<uiHint:title 
     text="Status Reason"/>
   ...
</schema>

Creación de una Sección

El espacio de nombre uiHint soporta la definición de una sección de mapa de Interface de Usuario. Tenga en cuenta que las secciones se crean actualmente en los Mapas de Interface de Usuario generados cuando el esquema tiene un nodo de lista o de grupo con una etiqueta o mdField. La funcionalidad que se describe aquí activa la creación de una sección sin que se requiera nodo de lista o de grupo con etiqueta en el esquema. Cada sección debe estar vinculada por un par de elementos startSection y endSection.

Sintaxis Atributos de Soporte Descripción

<uiHint:startSection .../>

sectionColumn="left | right | fullWidth | float"

Por defecto, la sección tiene el ancho completo en los mapas de despliegue. Para sustituir esa configuración, debe especificar si desea que una sección de la mitad del ancho completo aparezca en la columna izquierda (left), en la columna derecha (right) o que sea flotante (float). Las secciones que se marcan como "flotantes" se despliegan con la mitad del ancho y se alinean en función de cómo se despliegan las secciones anteriores o si se ocultan condicionalmente. Por ejemplo, si una sección que está alineada a la izquierda está seguida por una sección flotante, la sección flotante aparece en la columna derecha si la sección izquierda está completa, pero en la columna izquierda si la sección izquierda está oculta/cerrada.

editColumn="left | right | fullWidth | float"

Por defecto, las secciones aparecen con el ancho completo en los mapas de mantenimiento. Para sustituir esa configuración, debe especificar si desea que una sección de la mitad del ancho completo aparezca en la columna izquierda (left), en la columna derecha (right) o que sea flotante (float). El comportamiento es similar al de sectionColumn.

sectionOpen="false"

Por defecto, una sección está abierta en el despliegue inicial. Especifique este atributo para que inicialmente la sección se despliegue cerrada.

mdField=" "

Especifique el nombre de un campo de metadatos cuya etiqueta deba usarse como encabezado de la sección.

label=" "

Especifique el texto explícito que se debe usar como encabezado de la sección.

visibleOn="displayMap | inputMap"

Por defecto, una sección aparece en los mapas de despliegue y de entrada. Use este atributo para limitar el despliegue de la sección al mapa de despliegue (displayMap) o al mapa de entrada (inputMap).

La sintaxis para el atributo de sección final es <uiHint:endSection/>.

Ejemplos:

<schema xmlns:uiHint="http://oracle.com/ouafUIHints">
    <uiHint:startSection label="Main" sectionColumn="left"/>
    ...
    <uiHint:endSection/>
</schema>
<schema xmlns:uiHint="http://oracle.com/ouafUIHints">
    <uiHint:startSection mdField="F1-ADD-INFO" sectionColumn="fullWidth" editColumn="float" sectionOpen="false" visibleOn="displayMap"/>
    ...
    <uiHint:endSection/>
</schema>
Nota: Los atributos sectionColumn, editColumn y sectionOpen están disponibles para nodos de lista y de grupo.

Inclusión de Fragmento de Mapa

Puede especificar un fragmento de mapa de Interface de Usuario para insertar HTML en un mapa generado usando el nombre del elemento includeMap. Esto permite que se soporte un comportamiento más complejo en la interface de usuario. Para cualquier elemento que se incluya para la presentación en el fragmento de mapa, asegúrese de suprimir el elemento en la definición del esquema. De lo contrario, el HTML se generará automáticamente para el elemento.

Sintaxis Atributos de Soporte Descripción

<uiHint:includeMap .../>

map=" "

Especifique el nombre del mapa.

visibleOn="displayMap | inputMap"

Por defecto, los detalles del fragmento de mapa aparecen en los mapas de despliegue y de entrada. Use este atributo para limitar el despliegue de la sección.

Ejemplo:

<schema xmlns:uiHint="http://oracle.com/ouafUIHints">
  ...
  <uiHint:includeMap map="StandardActionButtons" visibleOn="displayMap"/>
  ...
</schema>
Nota: Si un fragmento de mapa contiene un esquema, la estructura del esquema del fragmento se inserta en el esquema generado dinámicamente cuando el objeto de negocio se presenta para la entrada. Técnicamente, el esquema del fragmento se inserta después de la estructura de boGroup en el esquema del mapa. Este método se puede usar para soportar la implementación del procesamiento de script previo y posterior de mantenimiento para un objeto de negocio y las llamadas de la función oraInvokeBS dentro del JavaScript embebido.

Si se requiere JavaScript en un fragmento de Mapa de Interface de Usuario de XHTML, es necesario vincularlo con una etiqueta ![CDATA[ ]] para garantizar que el documento XML sea válido. Tenga en cuenta que es posible que las etiquetas se deban convertir en comentarios para favorecer la compatibilidad con browsers antiguos. Por ejemplo:

		<script type="text/javascript">
/* <![CDATA[ */
//
//javascript
//
/* ]]> */
</script>		

Eliminar el caché: A fin de mejorar la performance, Framework almacena automáticamente en caché los esquemas de objeto de negocio, las áreas de datos y los mapas de Interface de Usuario. Cuando actualiza un objeto de negocio, el caché se elimina automáticamente. Sin embargo, si el objeto de negocio incluye un área de datos o un fragmento de mapa de Interface de Usuario embebido, el caché debe eliminarse manualmente para que se reconozcan los cambios. Consulte Caché del Servidor para obtener más información.

Creación de una Lista Desplegable

Se proporciona sintaxis para crear una lista desplegable en un mapa de edición. La lista desplegable se puede crear usando datos que provengan de un script de servicio, un servicio de negocio o una tabla.

Sintaxis Descripción

uiHint:select="ss: "

Especificar el nombre del script de servicio después de los dos puntos.

uiHint:select="bs: "

Especificar el nombre del servicio de negocio después de los dos puntos.

uiHint:select="table: "

Especificar el nombre de la tabla después de los dos puntos.

Al especificar un script de servicio o un servicio de negocio, se necesita información adicional acerca del mapeo para transmitir los datos desde el servicio y hacia él.

Sintaxis Valores Descripción

uiHint:selectIn=" "

serviceXPath:element Se usa para transmitir el valor de otro elemento al servicio (mapeo al XPath del servicio).
serviceXPath:'Literal' Se usa para transmitir un valor constante o literal al servicio (mapeo al XPath del servicio).

uiHint:selectOut="valuePath: ; descPath: "

Ver ejemplos a continuación. Se usa para indicar qué elemento de la salida del servicio tiene los valores y cuál tiene las descripciones.

Ejemplos:

<schema xmlns:uiHint="http://oracle.com/ouafUIHints">
    <boStatus mapField="BO_STATUS_CD" uiHint:select="bs:F1-BOStateReasonList" 
    uiHint:selectIn="boStatusBO:boStatusBO" uiHint:selectOut="valuePath:results/status; 
    descPath:results/description"/>
    ...
    <algorithm mdField="ALG_CD" uiHint:select="bs:F1-RetrieveSysEvtAlgorithms" 
     uiHint:selectIn="algorithmEntity:'F1AA';" uiHint:selectOut="valuePath:results/algorithm; 
     descPath:results/description"/>
    ...
    <outboundMsgType mdField="OUTMSG_TYPE_CD" required="true" fkRef="F1-OMTYP" uiHint:select="table:F1_OUTMSG_TYPE"/>
</schema>

Ocultamiento Condicional de Elementos

El atributo displayNone se usa para suprimir elementos en el mapa según las condiciones.

Sintaxis Valores Descripción

uiHint:displayNone=

"'XPath','value','!=' | '='" Se usa para ocultar condicionalmente este elemento según el valor de otro elemento (al que se hace referencia mediante su XPath). Ingrese un valor de ' ' para consultar un valor en blanco. Por defecto, el operador es '='. Este valor se puede sustituir usando '!='.
"function name, true | false" Se usa para indicar una función de JavaScript, la cual debe devolver un valor buleano.
Advertencia:

No se soportan los espacios embebidos dentro de los valores de cadena separados con coma de este atributo.

Esta configuración se puede usar en nodos de grupo, nodos de lista y elementos, salvo por los elementos incluidos en una lista. Los elementos incluidos en una lista no se pueden ocultar condicionalmente.

En el siguiente ejemplo, se ilustra cómo dos elementos (referencia de divisa y consulta) se ocultan o se despliegan según el valor del elemento de tipo de dato. Tenga en cuenta que, en este ejemplo, también se ilustra la Activación de Comportamiento de Elementos Dependientes porque el valor del elemento de tipo de dato puede cambiar y, en ese caso, la condición para ocultar los elementos subsiguientes se debe revaluar.

<schema xmlns:uiHint="http://oracle.com/ouafUIHints">
    ...
    <dataType mdField="F1_SE_DATA_TYPE" dataType="lookup" lookup="F1_SE_DATA_TYPE" 
     uiHint:dependents="currencyRef;lookup; "/>
     <currencyRef mdField="F1_SE_CURR_REF_LBL" uiHint:displayNone="'dataType','F1MO','!='"/>
     <lookup mdField="F1_SE_LOOKUP_LBL" fkRef="F1-LKUPF" uiHint:displayNone="'dataType','F1LP','!='"/>
     ...
</schema>

En el siguiente ejemplo, se ilustra cómo hacer referencia a una función cuando esta recibe parámetros:

<uiHint:startSection mdField="F1_SE_DEFAULT_SECT" 
    uiHint:displayNone="isApplicableForSchemaType(item,'F1MP'),true"/>

Protección Condicional de Elementos

El atributo de protección se usa para proteger elementos en el mapa según otros factores.

Sintaxis Valores Descripción

uiHint:protect=

"'XPath','value','!=' | '='" Se usa para proteger condicionalmente este elemento según el valor de otro elemento (al que se hace referencia mediante su XPath). Ingrese un valor de ' ' para consultar un valor en blanco. Por defecto, el operador es '='. Este valor se puede sustituir usando '!='.
"function name, true | false" Se usa para indicar una función de JavaScript, la cual debe devolver un valor buleano.

"'action','A' | 'C','!=' | '='"

Use el valor 'action' para proteger el elemento en función de la acción actual. Por ejemplo, ciertos elementos solo se pueden especificar cuando se agrega un registro. Cualquier cambio subsiguiente que se haga en el registro debe proteger el elemento para que no cambie. Cuando use esta opción, los valores válidos para 'value' son A (agregar) y C (cambiar).
Advertencia:

No se soportan los espacios embebidos dentro de los valores de cadena separados con coma de este atributo.

La Indicación de Interface de Usuario de protección se puede usar en nodos de grupo, nodos de lista y elementos, salvo por los elementos incluidos en una lista. Los elementos incluidos en una lista no se pueden proteger condicionalmente.

La siguiente Indicación de Interface de Usuario permite proteger la categoría de estadísticas cuando la acción es "C".

<schema xmlns:uiHint="http://oracle.com/ouafUIHints">
 ...
 <statisticsCategory dataType="lookup" mapField="STAT_CATEGORY_FLG" 
    lookup="STAT_CATEGORY_FLG" uiHint:protect="'action','C','='"/>
 ...
</schema>

Activación de Comportamiento de Elementos Dependientes

El atributo de elementos dependientes se usa para activar el comportamiento en un elemento secundario cuando se cambia un elemento principal.

Sintaxis Valores

uiHint:dependents=" "

Una lista de uno o más elementos dependientes separados por punto y coma.

En el siguiente ejemplo, se ilustra cómo la lista desplegable de un elemento se controla con el valor de otro elemento. En este ejemplo, cuando cambia el País, la lista de Estados que se pueden elegir debería cambiar para que se muestren solamente los estados del país indicado.

<schema xmlns:uiHint="http://oracle.com/ouafUIHints">
  <country label="Country" uiHint:select="table:CI_COUNTRY" uiHint:dependents="state"/>
  <state label="State" uiHint:select="ss:CM-RetrieveCountryStates" 
   uiHint:selectIn="input/country:country;"  uiHint:selectOut="valuePath:output/state/stateCode; 
   descPath:output/state/stateDesc"/>
    ...
</schema>
Nota:

Los destinos de elementos dependientes solo pueden designar elementos, no nodos de lista ni de grupo.

No modifique el valor de atributo "id" de los elementos principal y dependiente. En el elemento dependiente los datos se completan según el valor de atributo "id".

Control de Destino de Presentación

Por defecto, todos los elementos que no se suprimen quedan visibles en el mapa de despliegue y en el mapa de entrada. Use el atributo visibleOn para limitar la inclusión de un elemento en el mapa de despliegue o de entrada.

Sintaxis Valores

uiHint:visibleOn=

"displayMap"
"inputMap"
<schema xmlns:uiHint="http://oracle.com/ouafUIHints">
  ...
  <uiHint:includeMap map="StandardActionButtons" visibleOn="displayMap"
  ...
</schema>

Generación de un Área de Texto

Por defecto, un casillero de texto standard se presenta en un mapa de entrada para cualquier elemento de cadena. Si el campo es más grande, y desea tener un área de texto más grande (con una barra de desplazamiento), use el atributo textArea.

Sintaxis
uiHint:textArea="true"
<schema xmlns:uiHint="http://oracle.com/ouafUIHints">
   ...
  <message label="Message" uiHint:textArea="true"/>
  ...
</schema>

Modificación de los Valores por Defecto de la Referencia de Clave Foránea

Por defecto, cuando se despliega un elemento con fkRef, se activan una cadena de información, un menú contextual, la navegación y la búsqueda (si la referencia de Clave Foránea está correctamente configurada). Se proporciona la sintaxis para que pueda desactivar cualquiera de estas funciones según lo desee.

Sintaxis
uiHint:fkRef="info:false;context:false;navigation:false;search:false;"

Solo debe especificar la función que desea desactivar. En el siguiente ejemplo, se ilustra cómo desactivar la capacidad de navegación, lo cual implica que el texto ya no se presentará como hipertexto.

<schema xmlns:uiHint="http://oracle.com/ouafUIHints">
   ...
   <attachmentID fkRef="F1-ATTCH" primeKey="true" suppress="input" uiHint:fkRef="navigation:false;"/>
   ...
</schema>
Acceso Rápido: Consulte Formato de Referencia de Clave Foránea en la sección de Atributos de Mapa de Interface de Usuario para obtener más información acerca de cada valor de configuración de la referencia de Clave Foránea.

Supresión de Formato Automático de Números

Por defecto, los campos numéricos (dataType="number") tienen el formato de números. Se proporciona un atributo para aplicar en su lugar el formato alfanumérico.

Nota: Si el valor de dataType no se especifica de manera explícita, se lo deriva de mdField o mapField.

Sintaxis
uiHint:alphaFormat="true|false"

Por defecto, el valor es falso (y, por lo tanto, se puede excluir por completo).

Ejemplos:

<schema xmlns:uiHint="http://oracle.com/ouafUIHints">
 ...
 <numberCount mdField="" dataType="number" uiHint:alphaFormat="true"/>
    ...
</schema>

Capitalización Automática de los Datos de Entrada

Esta uiHint proporciona la sintaxis para capitalizar automáticamente los datos de entrada.

Sintaxis
uiHint:capitalize="true|false"

Por defecto, el valor es falso (y, por lo tanto, se puede excluir por completo).

<schema xmlns:uiHint="http://oracle.com/ouafUIHints">
 <toDoTypeCd mdField="TD_TYPE_CD" uiHint:capitalize='true' isPrimeKey="true"/> 
</schema>
Nota: Este atributo se ignora si está configurado el valor uiHint:textArea="true".

El atributo está disponible solamente en el diseñador de esquemas cuando el valor isPrimeKey está definido como verdadero. El atributo se puede agregar a cualquier elemento de cadena si se usa un visor de origen.