Nodos y atributos de esquema
Para la definición de objeto de negocio, la finalidad del esquema es crear un enlace entre el esquema y un objeto de mantenimiento. Para la definición de servicio de negocio, especifica un enlace entre el esquema y un servicio, que puede ser un servicio general, uno de búsqueda o uno de objeto de mantenimiento. Para la definición de script de servicio, define la API para transferir información al script y desde este. En la documentación siguiente se proporciona una lista completa de los nodos de XML y atributos disponibles al construir el esquema.
Contenido
El tipo de datos de un elemento de campo
Consideraciones de hora estándar
Valores por defecto y variables del sistema
Los nodos y atributos de acoplamiento
Ampliación de seguridad para script de servicio
Sustitución de acción para un servicio de negocio
Los cuatro tipos de elementos
Un elemento de esquema puede tener uno de los cuatro tipos de estructura diferentes que existen. Tenga en cuenta que hay dos clases de tipos de elementos: la lista y el grupo de nodos estructurales y los datos que contienen nodos de campo y sin formato.
Abreviación nemotécnica | Valores válidos | Descripción | Ejemplos |
---|---|---|---|
type= | "field" |
El tipo de campo es el tipo por defecto para cualquier elemento que no se haya etiquetado de forma explícita como otra cosa distinta de campo. Por tanto, prácticamente nunca tiene que etiquetar de forma explícita un elemento como un campo. Tenga en cuenta que un elemento de campo, a diferencia de un grupo o una lista, contendrá información en sus nodos, y no otros nodos. |
|
"group" |
El elemento de grupo suele ser solo un elemento estructural del esquema, en cuyo caso no tiene asignación. Tenga en cuenta que cuando se agrupan varios elementos que se usan para asignar una estructura XML de un campo CLOB/XML de un registro controlado por objeto de negocio, la asignación puede estar en el nivel de grupo. |
Ejemplo en el que un grupo se usa para crear una estructura
Ejemplo en el que el grupo incluye la asignación:
|
|
"list" |
El nodo de lista es estructural como el nodo de grupo. La única diferencia es que la estructura de lista tiene la capacidad de repetirse varias veces en un documento XML. |
Ejemplo de un esquema con una lista:
Ejemplo de un esquema con una lista:
|
|
"raw" |
El tipo de datos sin formato se usa para capturar un grupo de texto sin formato que no tiene ninguna estructura inherente asociada con él. |
Ejemplo de una instancia XML para el esquema anterior:
|
El tipo de datos de un elemento de campo
De los cuatro tipos de elementos diferentes, solo un campo puede tener un tipo de datos.
Abreviación nemotécnica | Valores válidos | Descripción | Ejemplos |
---|---|---|---|
dataType= | "string" |
Por defecto, el elemento de campo es una cadena. Por tanto, no hay ningún requisito para especificar el tipo de datos de cadena. |
|
"number" |
Define un elemento que es un número. Nota: en las sugerencias de UI se incluye una configuración para la supresión del formato de número automático.
Nota: use el atributo currencyRef para que se muestre de modo automático el símbolo de divisa asociado al código de divisa de referencia. Este formato ignora las posiciones decimales de divisa, de modo que se puede mostrar un símbolo de divisa para una tarifa de unidad con muchos decimales.
|
Ejemplos
|
|
"money"
Atributos adicionales opcionales currencyRef="nombre de elemento" |
Define un elemento que representa un importe monetario. La referencia de divisa es opcional y, si se deja en blanco, se usará la divisa de instalación. Formato y validación automáticos que se aplicarán según la divisa. Por ejemplo, se mostrará el símbolo de divisa cuando haya representación automática. Además, el número de decimales no debe superar el número válido definido para la divisa. Nota: consulte Referencia a otros elementos para conocer la sintaxis soportada para hacer referencia a otros elementos.
|
|
|
"lookup"
Atributo adicional necesario lookup="nombre de campo" |
Define un elemento que tiene valores válidos definidos usando una lista de valores. El campo de lista de valores es necesario. |
|
|
"lookupBO"
Atributo adicional necesario lookupBO="nombre de objeto de negocio" |
Define un elemento que tiene valores válidos definidos usando una lista de valores ampliable. El objeto de negocio de la lista de valores ampliable es necesario. |
|
|
"boolean" |
Define un elemento que tiene valores de "Y" y "N". |
|
|
"date" |
Define un elemento que representa una fecha. |
|
|
"dateTime" |
Define un elemento que representa una fecha y hora. Nota: consulte Consideraciones de hora estándar para obtener más información sobre la configuración adicional disponible de los campos de fecha/hora que representan la hora estándar.
|
|
|
"time" |
Define un elemento que representa una hora. |
|
|
"uri" |
Define un elemento que captura un URI. Los elementos definidos con este tipo permiten el soporte para la lista de permitidos y la sustitución de URI, como se describe en URI de referencia. |
|
Referencia a otros elementos
Hay varios atributos que permiten hacer referencia a otro elemento en el mismo esquema. La sintaxis soportada de la referencia de XPath es la misma en todos los casos. En esta sección se incluyen ejemplos en los que se usa el atributo de referencia por defecto (defaultRef).
Referencia a un elemento hermano:
<schema>
<id mapField="ACCT_ID" required="true"/>
<altId defaultRef="id" required="true"/>
</schema>
Referencia a un elemento en un grupo superior:
<schema>
<id mapField="ACCT_ID" required="true"/>
<msgInfo type="group" mapXML="XML_FIELD">
<altId defaultRef="../id" required="true"/>
</msgInfo>
</schema>
Referencia a un elemento en un grupo inferior:
<schema>
<id mapField="ACCT_ID" defaultRef="msgInfo/altId" required="true"/>
<msgInfo type="group" mapXML="XML_FIELD">
<altId required="true"/>
</msgInfo>
</schema>
Referencia a un elemento en otro grupo:
<schema>
<acctInfo type="group">
<id mapField="ACCT_ID" required="true"/>
</acctInfo>
<msgInfo type="group" mapXML="XML_FIELD">
<altId defaultRef="../acctInfo/altId" required="true"/>
</msgInfo>
</schema>
Consideraciones de hora estándar
La mayor parte de los campos de fecha y hora representan la hora "oficial". Por ejemplo, si una zona horaria cambia la hora en invierno y en verano, el campo de fecha y hora captura la hora observada actual. Sin embargo, algunos campos de fecha y hora deben capturarse siempre en hora estándar para evitar confusiones o ambigüedad. Un buen ejemplo es una fecha y hora relacionada con datos de intervalo detallados. Consulte Diseño de zonas horarias para obtener más información.
Cuando se define un elemento con dataType="dateTime", puede configurar, si lo desea, stdTime="true" para indicar que los datos capturados en el elemento siempre representan la hora estándar de la zona horaria "base". La zona horaria "base" se especifica en las opciones de instalación.
Ejemplo:
<schema>
<startTime dataType="Time" stdTime="true"/>
</schema>
Si la zona horaria que representa al campo de fecha y hora no es la zona horaria de instalación, se utilizará la configuración opcional stdTimeRef="XPath a elemento de zona horaria" en un elemento de fecha y hora para indicar que el elemento representa la hora estándar e indica la zona horaria que se debe usar. Consulte Referencia a otros elementos para conocer la sintaxis soportada para hacer referencia a otros elementos.
Ejemplo:
<schema>
<alternateTimeZone fkRef="F1-TZONE" suppress="true"/>
<startDateTime dataType="dateTime" stdTimeRef="alternateTimeZone"/>
</schema>
Puede haber casos en los que la fecha y hora se capture como hora estándar en una zona horaria, pero se deben mostrar usando una zona horaria diferente. En este caso, el atributo displayRef="XPath" se puede usar junto con el atributo adecuado que identifique la zona horaria en la que se capturan los datos. Consulte Referencia a otros elementos para conocer la sintaxis soportada.
<schema>
<displayTimeZone fkRef="F1-TZONE" suppress="true"/>
<startDateTime dataType="dateTime" stdTime="true" displayRef="displayTimeZone"/>
</schema>
Los atributos de asignación
Cuando construya el esquema, puede elegir entre los atributos siguientes de asignación.
Abreviación nemotécnica | Valores válidos | Descripción | Ejemplos |
---|---|---|---|
mapField= | "nombre de campo" |
En el caso de un objeto de negocio, el atributo mapField se usa para identificar la columna de base de datos con la que está relacionado el elemento. Para los esquemas de servicio de negocio, el atributo mapField= se usa para enlazar un elemento de esquema con un elemento de servicio. |
|
mapChild= | "nombre de tabla" |
El atributo mapChild se usa solo para la asignación de objetos de negocio. Se usa de dos maneras:
|
Ejemplo de una lista en una tabla secundaria en un objeto de negocio:
|
mapList= | "nombre de lista" |
El atributo mapList se usa solo para la asignación de servicios de negocio. Se usa de dos maneras:
|
Ejemplo de una lista en un servicio de negocio:
|
mapXML= | "nombre de campo" |
El atributo mapXML se suele usar para asignar estructuras XML en un campo del servicio de carácter/XML grande. Tenga en cuenta que cuando use mapXML para asignar una lista o una estructura de grupo (type="lista" o type="grupo"), no es necesario que asigne todos los elementos secundarios dentro de la estructura. También es posible asignar elementos de lista en un campo de carácter grande asociado a la lista secundaria. |
|
isPrimeKey= | "true" |
Debe especificar una clave primaria para una lista definida dentro de un elemento XML asignado (type="lista" mapXML="CLOB"). El marco usa la clave primaria para determinar si es necesario añadir, actualizar o suprimir un elemento de lista durante la actualización de un objeto de negocio. Nota: no necesita especificar la clave primaria de una lista de objetos de negocio asignada a una lista de objetos de mantenimiento. Cuando se asigna una lista física, la clave primaria se deriva de los metadatos físicos existentes.
|
|
orderBy= | "XPath asc|desc, XPath asc|desc" |
Por defecto, las listas definidas dentro de un elemento XML asignado (type="lista" mapXML="CLOB") se ordenan por el primer elemento de la lista. Se puede especificar otro orden mediante el atributo orderBy. El valor de atributo es una lista de XPaths de campo separados por comas (relacionados con el elemento de lista) con un orden opcional (ascendente es el orden por defecto). Nota: solo está disponible para listas asignadas como XML en objetos de negocio.
|
|
Atributos descriptivos
Los atributos siguientes se pueden usar para describir un elemento de esquema y proporcionar configuración adicional relacionada con el elemento. Normalmente, estos atributos solo son útiles para los elementos de campo.
Abreviación nemotécnica | Valores válidos | Descripción | Ejemplos |
---|---|---|---|
<!-- comment --> |
Use eso para añadir un comentario a un esquema mediante caracteres de apertura y cierre especiales: <!-- y -->. |
|
|
description= | "texto" |
Se puede usar la descripción de un elemento para proporcionar una descripción interna del elemento con el fin de ayudar al lector del esquema a entender el motivo de negocio del elemento. |
|
label= | "texto" |
La etiqueta de un elemento debe ser un texto breve que normalmente precede al elemento en una interfaz de usuario. |
|
required= | "true" |
Se usa para indicar que es necesario que exista un elemento durante la interacción del objeto. Nota: para los esquemas incluidos, el atributo required="true" no se procesa en esquemas de objeto de negocio y servicio de negocio cuando se incluyen en un esquema de scripts de servicio. De este modo se soporta la capacidad del script de servicio para rellenar los elementos necesarios antes de que se invoque un objeto de negocio o un servicio de negocio embebido desde el script de servicio.
|
|
mdField= | "código de campo" |
El atributo de campo de metadatos se usa para asociar un elemento con los metadatos de un campo. El campo define el tipo de datos, así como su etiqueta y texto de ayuda. Si enlaza un elemento con un campo de metadatos, no es necesario especificar ninguno de estos atributos. Nota: para un esquema de objeto de negocio, el atributo mapField se usa para derivar el tipo de datos y la etiqueta. Se puede proporcionar un atributo mdField para sustituir a estos atributos, si fuera necesario. Si el elemento se asigna a una columna XML, el mdField se necesita para proporcionar el tipo de datos y la etiqueta adecuadas.
|
|
fkRef= | "Código de referencia de clave externa" |
Si el elemento es una clave externa, la definición de su referencia de clave externa permitirá la validación del marco del elemento durante la interacción del esquema y se proporcionarán de modo automático descripciones y capacidad de navegación. |
|
private= | "true" |
Al marcar un elemento como privado se evitará su exposición en la interacción de esquema. Nota: un elemento privado necesita un valor por defecto.
|
|
suppress= | "true" |
Esta configuración evita que un elemento aparezca en interfaces de usuario generadas de modo automático. Nota: este atributo se puede especificar en un grupo, en cuyo caso se suprimirán todos los elementos del grupo.
Nota: acceda a Valores por defecto y variables del sistema para obtener consejos relacionados con los valores por defecto para los elementos suprimidos.
|
|
"blank" |
Esta configuración significa que la representación automática de UI en el modo de visualización ocultará el elemento si su valor está en blanco. El elemento seguirá siendo modificable en el mapa de entrada, esté en blanco o no. |
|
|
"input" |
Esta configuración significa que la representación automática de UI suprimirá el elemento para su entrada, aunque se pueda mostrar si no está en blanco. Nota: los elementos marcados como suppress="input" se comportarán como con suppress="blank". Si el valor está en blanco, no se mostrará ningún valor en el mapa de visualización o de entrada. Si existe el valor del elemento, se mostrará el elemento en el mapa de visualización y en el de entrada.
Nota: acceda a Valores por defecto y variables del sistema para obtener consejos relacionados con los valores por defecto para los elementos suprimidos.
|
|
|
noAudit= | "true" |
Esta configuración evita que aparezca como un elemento cambiado en el hueco de plug-in de la auditoría del objeto de negocio. Si se especifica en un nodo de lista o grupo, se aplicará al nodo completo. No puede especificarlo en el nodo raíz de esquema, solo en elementos de esquema. Nota: este atributo solo se aplica a esquemas de objetos de negocio.
|
|
storeEmptyNodes= | "true" |
Por defecto, los nodos vacíos se eliminan de una instancia de objeto de negocio cuando se guardan. Esta configuración permite a un elemento de un grupo o de una lista conservar de forma explícita los nodos vacíos. Este atributo puede resultar de utilidad en situaciones en las que los datos del objeto de negocio se intercambian con un sistema externo y no existe necesidad de distinguir entre un valor vacío para un elemento que participa en la sincronización y otro que no participa y que, por tanto, debe omitirse del mensaje. Nota: solo está disponible para elementos de grupo y de lista.
|
|
emitEmptyGroups= | "true" |
Por defecto, los nodos vacíos no se incluyen en la salida de un objeto de negocio o una llamada de servicio de negocio. Este atributo se define en el nodo de esquema de nivel superior, permitiendo que los nodos vacíos de todos los elementos de grupos y de lista se incluyan en la salida. Este atributo puede resultar de utilidad en las mismas situaciones que pueden precisar el uso del atributo storeEmptyNodes=. Nota: solo está disponible para esquemas de objeto de negocio y de servicio de negocio.
|
|
emitEmptyElements= | "true" |
Este atributo es similar a emitEmptyGroups=, pero también se puede especificar en el nivel de campo. El atributo es aplicable a todos los tipos de esquemas. |
|
adheresToDA= | “lista de nombres de área de datos, separados por comas.” |
Este atributo es aplicable a los nodos de esquema, grupo y lista. Indica que este nodo de subesquema está destinado a "parecerse" al esquema de una de las áreas de datos de la lista, por motivos de polimorfismo en general. Nota: el enfoque recomendado para aplicar la estructura de un área de datos compartida consiste en su inclusión en el esquema. Este atributo deberá limitarse a casos de uso en los que la posibilidad de incluir el área de datos no sea posible.
|
|
Constantes del esquema
Hay algunos esquemas que pertenecen a productos donde el diseño garantiza la inserción de un valor por defecto en el esquema, pero donde el valor es específico de la implantación y, por tanto, el producto no puede definirlo. Para estas situaciones, el producto puede usar una técnica denominada "constante del esquema". El diseño del esquema incluirá una constante declarada. En el momento de la implantación, la tarea de configuración incluirá la definición del valor adecuado para la constante.
Por ejemplo, suponga que el producto entrega un algoritmo que crea un mensaje saliente cuando se cumple una determinada condición. La implantación debe configurar el tipo de mensaje saliente que se va a usar. Para usar una constante del esquema para definir el tipo de mensaje saliente, el producto base configurará lo siguiente:
-
Se define un valor de lista de tipo de opción para la lista de valores F1CN_OPT_TYP_FLG. Por ejemplo, M202 - Tipo de mensaje saliente de finalización de actividad con un nombre de valor de Java de outmsgCompletion.
-
El esquema base que se usa para crear el mensaje saliente de "finalización de actividad" hace referencia a la constante del esquema que usa el nombre de valor de Java del valor de lista del tipo de opción.
... <outboundMessageType mapField="OUTMSG_TYPE_CD" default="%Constant(outmsgCompletion)"/> ...
En el momento de la implantación, los usuarios administrativos deben configurar el tipo de mensaje saliente adecuado para "finalización de actividad". A continuación, vaya a Configuración de funciones, elija el tipo de característica Constantes del esquema, el tipo de opción tipo de mensaje saliente de finalización de actividad e introduzca el tipo de mensaje saliente recién creado en el valor de opción.
También se pueden usar las constantes del esquema en la sintaxis de acoplamiento para definir los elementos de fila necesarios para acoplamiento.
Valores por defecto y variables del sistema
El atributo por defecto se puede usar para insertar valores por defecto en los elementos de campo, así como en los elementos de fila necesarios para acoplamiento. Puede insertar por defecto un campo en una constante o en una de varias variables del sistema.
Cuando es necesario un elemento, el valor por defecto se aplica en el nivel del servidor al añadir o cambiar el registro, si no se indica ningún valor para el elemento.
Si el elemento es opcional, podría configurarse un valor por defecto para indicar un valor sugerido para el usuario al rellenar el registro en la interfaz de usuario, en modo de adición. Los usuarios deben poder eliminar el valor por defecto para este tipo de elemento, y el sistema no intentará rellenarlo en el momento de guardar.
El estándar para el mantenimiento de 'lista' será mostrar una fila vacía para una nueva lista que el usuario puede querer elegir o no para rellenar. De acuerdo con esto, los valores por defecto de la UI no se muestran para los elementos de lista.
No es recomendable configurar un atributo por defecto para un elemento opcional que no sea editable ni visible en la interfaz de usuario en modo de adición; por ejemplo, un elemento con suppress="true" o suppress="input", o un elemento de lista cuyo valor por defecto no aparezca de acuerdo con el punto anterior. El valor por defecto para este tipo de elemento se sigue aplicando, pero el usuario no tiene la posibilidad de restablecer el valor. Esto puede traducirse en incoherencias porque la definición de valores por defecto no se produce en los campos opcionales que se añaden mediante un caso de uso que no sea la interacción de UI.
Abreviación nemotécnica | Valores válidos | Descripción | Ejemplos |
---|---|---|---|
default= | "valor" | Use este atributo para establecer por defecto un valor específico en un elemento. Los valores que son válidos dependen de la configuración dataType. |
|
"%CurrentDate" | Se usa para establecer por defecto la fecha actual en el elemento. Solo se aplica a los elementos de fecha. |
|
|
"%CurrentDateTime" | Se usa para establecer por defecto la fecha y hora actual en el elemento. Solo se aplica a los elementos de fecha y hora. |
|
|
"%StandardDateTime" | Se usa para establecer por defecto la fecha y hora estándar. La fecha y hora estándar es idéntica a la fecha y hora actual, a menos que esté en vigor el horario de verano para la zona horaria base. Se puede usar con el atributo stdTime. Nota: consulte Consideraciones de hora estándar para obtener más información.
|
|
|
"%ProcessDate" | Puede establecer por defecto la fecha de proceso. La fecha de proceso es diferente de la fecha actual porque la fecha de proceso permanece constante durante la ejecución del proceso. La fecha actual reflejará la fecha real de procesamiento. Es parecida al fecha hábil por lotes que es un parámetro de lote estándar. |
|
|
"%ProcessDateTime" | Es parecido a "%ProcessDate", pero para los campos de fecha y hora. |
|
|
"%CurrentUser" | Se usa para establecer por defecto el usuario actual en el elemento. |
|
|
"%CurrentUserTimeZone" | Se usa para establecer por defecto la zona horaria del usuario actual en el elemento. Si no se encuentra la zona horaria del usuario actual, se usa la zona horaria de instalación. |
|
|
"%CurrentUserLanguage" | Se usa para establecer por defecto el idioma del usuario actual en el elemento. |
|
|
"%InstallationCurrency" | Se usa para establecer por defecto la divisa del registro de instalación. |
|
|
"%InstallationCountry" | Puede establecer por defecto el país del registro de instalación. |
|
|
"%InstallationLanguage" | Puede establecer por defecto el idioma del registro de instalación. |
|
|
"%Constant( )" | Puede establecer por defecto un valor de elemento mediante una constante del esquema. | El siguiente ejemplo representa una constante del esquema usada como valor por defecto, donde el nombre de valor de Java del valor de lista es 'customerLanguage'.
|
|
"%Context( )" | Puede establecer por defecto un valor incluido en una variable de contexto. Aviso: las variables de contexto deben inicializarse dentro de un script de servidor antes de que se pueda aplicar el valor por defecto del contexto de esquema. Consulte Variables de contexto para obtener más información.
|
Ejemplo de una variable de contexto usada como valor por defecto:
Nota: cuando se define una variable de contexto en los scripts, debe anteponerse el prefijo $$. Cuando se hace referencia a la variable en la sintaxis %Context( ), no se incluye el prefijo.
|
|
defaultRef= | "XPath" |
Use este atributo para establecer por defecto el valor de un elemento en el valor de otro. |
Consulte Referencia a otros elementos para conocer la sintaxis soportada para hacer referencia a otros elementos. |
Los nodos y atributos de acoplamiento
El término "acoplamiento" se usa para describir el acto de definir uno o varios elementos únicos para un esquema que realmente forman parte de una lista dentro del objeto de mantenimiento. El acoplamiento es posible si hay otros atributos de la lista que se pueden definir para describir de forma única el elemento o elementos. Un caso de uso habitual de acoplamiento es una característica. En vez de definir las características de un objeto mediante una recopilación en la que el usuario debe elegir el tipo de característica y, después, definir el valor, las características se definen como elementos reales con la etiqueta adecuada mostrada. Esta técnica permite que el diseñador del esquema y la interfaz de usuario muestren cada uno características diferenciadas en la parte lógica de la interfaz de usuario en vez de todas juntas amontonadas.
Identificación de la lista o tabla secundaria
Cuando se acopla una tabla secundaria, se necesita el nodo de fila para identificar la lista o tabla secundaria de la que proceda el elemento. En el nodo de fila, se debe definir al menos un elemento con una definición is= que garantice que el elemento es una fila única en la base de datos. También puede definir elementos o campos en la fila que se suprimen y se rellenan mediante la configuración de valores por defecto.
-
Para un objeto de negocio, el nodo de fila define la tabla secundaria a la que pertenece el campo acoplado.
La sintaxis es <row mapChild="nombre de tabla">. Este ejemplo corresponde a la lista de personas de una cuenta en el producto Customer Care and Billing. Una persona puede marcarse como "principal". Aquí se ilustra cómo definir un elemento explícito para el ID de persona principal con el fin de simplificar las referencias a ese campo. Es parte de la tabla secundaria CI_ACCT_PER. Lo que hace que sea único es que MAIN_CUST_SW es true (verdadero) y solo una fila puede tener ese valor.
<custId mapField="PER_ID" mdField="CM-MainCust"> <row mapChild="CI_ACCT_PER"> <MAIN_CUST_SW is="true" /> <ACCT_REL_TYPE_CD default="MAIN" /> </row> </custId>
Nota: en el ejemplo anterior se describe cómo el nodo de fila puede definir también elementos dentro de la lista que se suprimen y a los que se les asigna un valor por defecto. Esta sintaxis nunca se usa para identificar una fila determinada. Tenga en cuenta que un valor por defecto puede ser una cadena literal o una variable del sistema. -
Para un servicio de negocio, el nodo de fila identifica el nombre de la lista a la que pertenece el campo acoplado.
La sintaxis es <row mapList="nombre de lista">. En este ejemplo se muestran dos entradas de una lista que se acoplan a un valor de campo y descripción.
<selectList type="list" mapList="DE"> <value mapField="COL_VALUE"> <row mapList="DE_VAL"> <SEQNO is="2"/> </row> </value> <description mapField="COL_VALUE"> <row mapList="DE_VAL"> <SEQNO is="3"/> </row> </description> </selectList>
Identificación de forma única del campo acoplado o la lista acoplada
La sintaxis is= en una fila o un elemento rowFilter se usa para identificar de forma única la fila.
Abreviación nemotécnica | Valores válidos | Descripción | Ejemplos |
---|---|---|---|
is= | "valor" | Este atributo se usa para hacer referencia de forma directa a un valor. |
|
"%Constant( )" | Puede configurar un elemento acoplado mediante una constante del esquema. Durante una interacción del servicio, el valor de la constante del esquema se usará para identificar el elemento acoplado en su fila secundaria. |
Ejemplo de una constante del esquema usada en la sintaxis de acoplamiento como valor por defecto, donde el nombre de valor de Java del valor de lista es 'cmRate'.
|
|
"%n" | El valor de sustitución %n se usa para hacer referencia a una instancia de lista relativa. Este tipo de instancia se suele usar para configurar un elemento acoplado para una tabla secundaria introducida por número de secuencia. El valor de n debe ser un valor de número entero positivo. Durante una interacción de lectura de objeto de negocio, se devolverá la instancia de lista relativa (posición) que especifique el número entero. | Ejemplo con una instancia de lista relativa en el que se devuelve la primera instancia de la fila.
|
Acoplamiento de tipos de características predefinidos
Si el campo acoplado se encuentra en una recopilación de características y se trata de una característica predefinida, la representación automática de la UI generará una lista desplegable de valores válidos. Por ejemplo, el esquema siguiente generará una lista desplegable del elemento Uso con los valores válidos del tipo de característica Uso de motivo de estado (F1–SRUSG).
<usage mdField="STATUS_RSN_USAGE" mapField="CHAR_VAL">
<row mapChild="F1_BUS_OBJ_STATUS_RSN_CHAR">
<CHAR_TYPE_CD is="F1-SRUSG"/>
<SEQ_NUM is="1"/>
</row>
</usage>
Definición de varios elementos de la lista
Cuando se intenta incluir varias columnas de la misma lista, el sistema proporciona notación de alias para copiar las reglas de acoplamiento definidas en otro elemento con el fin de que no sea necesario repetir las reglas de acoplamiento. Para hacerlo, el nodo de fila incluye el atributo rowRef e indica el nombre del otro elemento que define la información de asignación. En el ejemplo siguiente se ilustra el acoplamiento de los campos ID de cliente y Recibir copia de factura de la misma lista de personas de una cuenta (donde MAIN_CUST_SW es true).
<custId mapField="PER_ID">
<row mapChild="CI_ACCT_PER">
<MAIN_CUST_SW is="true" />
<ACCT_REL_TYPE_CD default="MAIN" />
</row>
</custId>
<copyBill mapField="RECEIVE_COPY_SW" rowRef="custId"/>
Tenga en cuenta que la notación anterior también ilustra que rowRef se puede definir directamente en la definición de atributo del elemento.
Acoplamiento de dos niveles de profundidad
Si el objeto o servicio de mantenimiento tiene listas anidadas con dos niveles de profundidad, el sistema soportará el acoplamiento de un elemento dentro de un elemento acoplado. En esta técnica también se usa el atributo rowRef. El acoplamiento del segundo nivel hace referencia al elemento acoplado del primer nivel. En el siguiente ejemplo se ilustra el acoplamiento de una característica en un elemento denominado legalContact para el cliente "principal”. Observe que el elemento legalContact tiene dos nodos de fila: uno para hacer referencia a la información de acoplamiento de su registro principal y otro para definir su tabla secundaria.
<custId mapField="PER_ID">
<row mapChild="CI_ACCT_PER">
<MAIN_CUST_SW is="true" />
<ACCT_REL_TYPE_CD default="MAIN" />
</row>
</custId>
<legalContact mapField="CHAR_VAL_FK1">
<row rowRef="custId">
<row mapChild="CI_ACCT_PER_CHAR" >
<CHAR_TYPE_CD is="LEGAL" />
</row>
</row>
</legalContact>
Tenga en cuenta que la notación anterior también ilustra que rowRef se puede definir como un atributo de un nodo de fila en vez de directamente en la definición de atributo del elemento.
Definición de listas acopladas
Hay ocasiones en las que una lista o tabla secundaria soporta varios valores del mismo "tipo" y estos se deben presentar como una lista. Para seguir con el ejemplo anterior, la lista de personas de una cuenta puede identificar a una persona como la "principal". Esta persona se ha acoplado en un elemento único en el que se ha establecido por defecto el tipo de relación de cuenta y se ha suprimido. Para mantener las demás personas relacionadas con una cuenta, puede definir una lista en la que cada fila capture el ID de persona y el tipo de relación de cuenta.
En lugar de un nodo de fila, la lista acoplada se configura con un elemento rowFilter. En el esquema siguiente se ilustra el ejemplo descrito. El nodo de lista define la tabla secundaria. rowFilter incluye los criterios que identifican las filas dentro de la tabla que se van a incluir. Los elementos de la lista se definen en el nodo de lista fuera del elemento rowFilter.
<custId mapField="PER_ID">
<row mapChild="CI_ACCT_PER">
<MAIN_CUST_SW is="true" />
<ACCT_REL_TYPE_CD default="MAIN" />
</row>
</custId>
<miscPersons type="list" mapChild="CI_ACCT_PER">
<rowFilter>
<MAIN_CUST_SW is="false" />
</rowFilter>
<relType mapField="ACCT_REL_TYPE_CD"/>
<personId mapField="PER_ID"/>
</custId>
Tenga en cuenta que el sistema validará que si un esquema contiene elementos únicos acoplados y listas acopladas de la misma tabla secundaria, los criterios que definen los que les hace únicos deben ser análogos.
Acoplamiento de listas con fechas en vigor
Existen algunas listas en la aplicación que tienen fechas en vigor y otros, fecha y hora en vigor. Por ejemplo, existen algunas recopilaciones de características con fechas en vigor. En estas recopilaciones, el diseño pretende capturar un solo valor para un tipo de característica que puede cambiar con el paso del tiempo. Su finalidad no es soportar varios valores de características en vigor al mismo tiempo.
Hay algunos objetos de mantenimiento que tienen características con fecha en vigor, pero no características basadas en secuencia. Para esas entidades, es posible que las implantaciones quieran utilizar la característica para definir un campo adicional que no requiera fechas en vigor.
Cuando considere diseñar un elemento para su esquema que representa un valor en una recopilación con fecha en vigor, tenga en cuenta si el valor es un valor que se utiliza en procesos, como calcular una factura, de tal manera que sea importante capturar los cambios en el valor a lo largo del tiempo.
- Si no es importante llevar a cabo un seguimiento de los cambios realizados en el valor, se recomienda establecer la fecha en vigor como un valor fijo en el esquema. (Ejemplos debajo).
- Si es importante llevar a cabo un seguimiento de los cambios realizados en el valor, debe considerar cómo desea diseñar el esquema.
- Una opción es definir una lista acoplada como se describe más arriba. Tanto el valor como la fecha en vigor son elementos de esta lista. En este caso de uso se gestiona la lista como cualquier otra lista. Puede añadir o eliminar valores.
- Otra opción consiste en definir un solo valor acoplado en el esquema. Con esta opción, cuando se recupera el registro, se devuelve la última fecha en vigor. En este diseño, la cuestión realmente importante es cómo se define la fecha de referencia.
Elementos acoplados donde no se hace seguimiento de los cambios
A continuación se muestra un ejemplo de acoplamiento de un elemento en una recopilación con fecha en vigor, donde el valor no tiene que tener fecha en vigor. La recomendación en este caso es simplemente codificar de forma fija la fecha en el atributo is=.
<schema>
<externalReference mapField="ADHOC_CHAR_VAL" mdField="CM_EXT_REF" dataType="string">
<row mapChild="CI_SA_CHAR">
<CHAR_TYPE is="CM_EXT_REF"/>
<EFFDT is="2000-01-01"/>
</row>
</externalReference>
</schema>
Elementos acoplados donde los cambios tienen fecha en vigor
Si desea que el esquema de ON acople un valor con fecha en vigor que debe realizar un seguimiento de los cambios a lo largo del tiempo, el valor acoplado representará la última entrada en vigor. En este caso, se recomienda definir de forma explícita el campo de fecha o fecha/hora como un elemento. Existe sintaxis para el atributo is= para indicar que el campo de fecha explícita es la fecha que se va a utilizar para el valor.
Abreviación nemotécnica | Valores válidos | Descripción | Ejemplos |
---|---|---|---|
is= | "%effectiveDate( )" | Esta configuración se usa para indicar que la fecha que se va a utilizar es el valor de otro elemento.
Nota: consulte Referencia a otros elementos para conocer la sintaxis soportada para hacer referencia a otros elementos.
|
|
"%effectiveDateTime( )" | Esta configuración se usa para indicar que la fecha/hora que se va a utilizar es el valor de otro elemento. Nota: consulte Referencia a otros elementos para conocer la sintaxis soportada para hacer referencia a otros elementos.
|
|
Debe considerar si el elemento de fecha o fecha/hora se debe mostrar en la interfaz de usuario cuando se muestre el fichero acoplado o si se debe suprimir. Los diseñadores deben tener en cuenta también el diálogo de usuario para actualizar el valor. Puede ser más intuitivo para que el campo acoplado se muestre solo y tenga un diálogo distinto para actualizar el valor de fecha en vigor.
Para esta opción se sugiere que la página de mantenimiento del objeto incluya una zona independiente que muestre el historial de los valores con fecha en vigor a lo largo del tiempo. El último valor se puede incluir en esa zona también.
Tenga en cuenta que con la compatibilidad con versiones anteriores, el sistema también soporta las opciones siguientes. Sin embargo, no se recomiendan. Definían de manera implícita la fecha de referencia como la fecha actual en todo momento. Las opciones soportaban la adición de nuevas filas con fecha en vigor al cambiar el valor. Pero la técnica también hizo que aparecieran nuevas filas con fecha en vigor al actualizar otros elementos del mismo esquema. Las nuevas filas tendrán la fecha o la fecha/hora actuales con el mismo valor de fila porque la fecha o la fecha/hora de referencia es la fecha actual, lo cual supone un cambio. El producto no recomienda gestionar una característica con fecha en vigor sin definir la fecha o la fecha/hora como un elemento explícito.
Abreviación nemotécnica | Valores válidos | Descripción | Ejemplos |
---|---|---|---|
is= | "%effectiveDate" |
No se recomienda esta configuración. |
|
"%effectiveDateTime" |
No se recomienda esta configuración. |
|
Zona de búsqueda
Se puede configurar un elemento de esquema de mapa de UI para que se muestre un cuadro de diálogo de búsqueda automática cuando el esquema se incluye dentro de un mapa de UI de mantenimiento.
search="search zone"
El atributo de búsqueda se puede usar dentro de un esquema de mapa de UI y se usa para generar de modo automático el atributo de mapa de UI oraSearch. La zona de búsqueda consiste en una zona de explorador configurada como búsqueda.
<person fkRef="PER" search="C1_PSRCH"/>
searchField="campo de búsqueda:elemento|'literal';"
El atributo searchField solo se puede usar junto con el atributo de búsqueda. El atributo searchField se usa para crear el atributo de mapa de UI oraSearchField. El valor searchField se usa para rellenar un filtro de zona de búsqueda con un valor inicial cuando se lanza la zona de búsqueda. El valor inicial también puede ser un literal. El valor searchField se usa para establecer la coincidencia con la abreviación nemotécnica de filtro también denominada searchField.
Campo de búsqueda: elemento|'literal'. El campo de búsqueda representa el filtro de la zona de búsqueda que se rellenará en el lanzamiento. El elemento es el elemento de esquema del mapa que se usa para rellenar el filtro. El elemento es opcional; si se deja en blanco, se establecerá por defecto el elemento en el que se especifique este atributo. searchField también toma 'literal' como valor de entrada.
<person fkRef="PER" search="C1_PSRCH" searchField="PERSON; PER_TYPE:personType;"/>
searchOut="campo de búsqueda:elemento;"
El atributo searchOut solo se puede usar junto con el atributo de búsqueda. El atributo searchOut se usa para crear el atributo de mapa de UI oraSearchOut. El valor searchOut se usa para capturar un valor seleccionado desde la zona de búsqueda y moverlo a un elemento de mapa de UI. El valor searchOut especificado debe coincidir con la abreviación nemónica ELEMENT_NAME dentro del parámetro de zona de resultados de búsqueda.
Campo de búsqueda: elemento. El campo de búsqueda representa el resultado de la zona de búsqueda al que se accede en el mapa de UI. El elemento es el elemento de esquema del mapa que se va a rellenar. El elemento es opcional; si se deja en blanco, se establecerá por defecto el elemento en el que se especifique este atributo.
<person fkRef="PER" search="C1_PSRCH" searchField="PER_ID"
searchOut="PER_ID;PRIMARY_PHONE:personPhone;"/>
Ampliación de seguridad para script de servicio
Se aplicará la seguridad de servicio de aplicación cuando se invoque un objeto de negocio o un script de servicio desde un script de ayudante de proceso de negocio o un mapa de UI, pero no desde un script de servicio. Si desea que se aplique seguridad cuando se invoque el objeto de negocio o un script de servicio desde un script de servicio, debe añadir el siguiente atributo al esquema del script de servicio.
appSecurity="true"
El atributo appSecurity solo está disponible para los esquemas de script de servicio. Si se especifica, se evaluará para el acceso el servicio de aplicación de cualquier objeto de negocio o script de servicio que el script de servicio invoque directamente.
<schema appSecurity="true">
...
</schema>
Sustitución de acción para un servicio de negocio
Si desea llamar a un servicio de negocio con una acción distinta a 'leer', es necesario especificar el atributo de acción en el esquema de servicio de negocio del nodo principal.
pageAction="add, change, delete"
El atributo de acción se usa para sustituir la acción por defecto de lectura en un esquema de servicio de negocio. Los valores válidos son:
-
añadir
-
actualizar (solo se permite para el servicio de objeto de mantenimiento)
-
cambiar (no permitido para el servicio de objeto de mantenimiento)
-
suprimir
-
leer (acción por defecto si no se especifica ninguna pageAction)
Ejemplo:
<schema pageAction="change">
<parm type="group">
<ele1/>
<ele2/>
</parm>
</schema>
Especificación de searchBy para un servicio de búsqueda
Si desea llamar a un servicio de búsqueda, debe especificar de forma explícita el atributo searchBy adecuado para los elementos asignados en el esquema.
searchBy="MAIN"
Los valores del atributo searchBy se pueden encontrar mediante la visualización del esquema XML enlazado al servicio de negocio; para ello, use la opción para visualizar URL de XML. Los valores habituales son los siguientes:
-
MAIN
-
ALT
-
ALT2
-
ALT3
- etcétera.
<schema searchBy="MAIN">
<AccountID mapField="ACCT_ID"/>
<Results type="list">
<AccountID mapField="ACCT_ID"/>
</Results>
</schema>
Inclusión de otros esquemas
No existe ninguna limitación para poder incluir un esquema en otro: todos los tipos se pueden incluir en todos los demás tipos. También se permiten inclusiones anidadas y, actualmente, no hay ninguna limitación sobre la profundidad del anidamiento.
En la inclusión de un esquema se necesitan dos partes:
- El nodo de inclusión
- El atributo de nombre
En la tabla siguiente se resaltan las declaraciones de inclusión soportadas.
Abreviación nemotécnica | Descripción | Ejemplos |
---|---|---|
<includeBO name=" "/> |
Se permite la inclusión de un esquema de objeto de negocio en otro esquema. En el contexto del esquema principal, pueden o no tener sentido las reglas de asignación de un esquema de objeto de negocio o de servicio de negocio. La inclusión de otros esquemas se hace bajo su responsabilidad. Sin embargo, un aspecto muy útil del procesamiento de XML es que el marco ignora los atributos que no son pertinentes. Es decir, no hace ningún daño que se incluyan atributos de asignación en un esquema de script. |
|
<includeBS name=" "/> |
Se usa para incluir un esquema de servicio de negocio. |
|
<includeDA name=" "/> |
Se usa para incluir un esquema de área de datos. |
|
<includeMP name=" "/> |
Se usa para incluir un esquema de mapa de UI. |
|
<includeSS name=" "/> |
Se usa para incluir un esquema de script de servicio. |
|
Atributos de compatibilidad
Estos atributos se han añadido como parte de las actualizaciones desde versiones anteriores del marco.
fwRel="2"
Este atributo se ha añadido a los esquemas creados en Framework 2 como parte de la actualización a Framework 4. Los esquemas nuevos no necesitarán este atributo. No se recomienda modificar este atributo sin comprender las diferencias de comportamiento siguientes, ya que los cambios que no sean adecuados pueden causar errores:
<schema fwRel="2"
...
</schema>