Noeuds et attributs de schéma

Pour la définition d'un objet métier, le schéma sert à créer un lien entre lui-même et un objet de maintenance. Pour la définition d'un service fonctionnel, vous indiquez le lien entre le schéma et un service (service général, service de recherche ou service d'objet de maintenance). Pour la définition d'un script de service, vous définissez l'API pour l'échange d'informations avec le script. La documentation qui suit fournit une liste complète des noeuds et attributs XML dont vous disposez pour élaborer un schéma.
Remarque :
La définition d'un schéma peut inclure des attributs liés à l'interface utilisateur qui représentent un aspect distinct du schéma à des fins de présentation. Ces attributions appartiennent à un espace de noms distinct appelé indications uiHint et ne font donc pas partie de la structure de données du schéma. Pour plus d'informations, voir Comprendre les indications uiHint.

Les quatre types d'élément

Un élément de schéma peut appartenir à l'un des quatre types différents de structure. A noter que les types d'élément se répartissent en deux classes : d'une part les noeuds structurels "group" et "list", d'autre part les noeuds contenant des données "field" et "raw".

Mnémonique Valeurs valides Description Exemples
type= "field"

Le type "field" (champ) est le type par défaut de tout élément qui n'est pas étiqueté explicitement comme étant autre chose qu'un champ. Par conséquent, il n'est en principe jamais nécessaire de le préciser explicitement. A noter que les noeuds d'un élément de type champ, contrairement à ceux d'un groupe ou d'une liste, contiennent des informations et non d'autres noeuds.

"group"

Un élément de type "group" est en général un élément structurel du schéma uniquement, auquel cas il n'a pas de mapping.

A noter que, lors du regroupement de plusieurs éléments qui sont tous utilisés pour le mapping avec la structure XML d'un champ CLOB/XML d'un enregistrement piloté par objet métier, le mapping peut s'effectuer au niveau groupe.

Exemple d'utilisation d'un groupe pour créer une structure :

<schema>
  <input type="group"
    <userId/>
  </input>
  <output type="group">
    <firstName/>
    <lastName/>
  </output>
</schema>

Exemple d'un groupe incluant le mapping :

<parameters type="group" 
mapXML="BO_DATA_AREA" mdField=
"F1_TODOSUMEMAIL_PARM_LBL"/>
  <numberOfDays 
  mdField="F1_NBR_DAYS" 
  required="true"/>
  <frequency 
   mdField="F1_FREQUENCY"/>
"list"

Un noeud de type "list" est un noeud structurel, comme le noeud de groupe. La seule différence est qu'une structure de liste peut se répéter plusieurs fois dans un document XML.

Exemple de schéma avec une liste :

<schema>
  <statesList type="list">
    <state isPrimeKey="true"/>
    <description/>
  </statesList>
</schema>

Exemple de schéma avec une liste :

<xml>
  <statesList>
    <state>AK</state>
    <description>Alaska</description>
  </statesList>
  <statesList>
    <state>AL</state>
    <description>Alabama</description>
  </statesList>
...
</xml>
"raw"

Le type de données "raw" (brut) permet de capturer une portion de texte brut auquel aucune structure inhérente n'est associée.

<sendDetail type="raw" />

Exemple d'instance XML pour le schéma ci-dessus :

<sendDetail>
  <messageInfo>
    <senderAddress>123 W. Main St,    Ontario, CA
    </senderAddress>
    <corpZone>3A</corpZone>
  </messageInfo>
</sendDetail>

Type de données d'un élément de type champ

Des quatre types d'élément différents, seul le type "field" (champ) peut avoir un type de données.

Mnémonique Valeurs valides Description Exemples
dataType= "string"

Par défaut, un élément de type champ est une chaîne. Ce type de données n'a donc pas à être spécifié explicitement.

<schema>
  <custName dataType="string"/>
</schema>
"number"

Définit un élément numérique.

Remarque :
Les indications uiHint comportent un paramètre permettant de supprimer le formatage automatique des nombres.
Remarque :
Utilisez l'attribut currencyRef pour que le symbole de devise associé au code de devise référencé soit affiché automatiquement. Les positions décimales des devises sont ignorées par ce formatage, ce qui vous permet d'afficher un symbole de devise pour un tarif unitaire avec de nombreuses décimales.

Exemples

<schema>
  <count dataType="number"/>
</schema>
<schema>
  <taxRate dataType="number" 
   currencyRef="currency"/>
</schema>
"money"

Attributs supplémentaires facultatifs

currencyRef="nom d'élément"

Définit un élément qui représente un montant monétaire.

La référence de devise est facultative ; si elle reste vide, la devise de l'installation est utilisée. Formatage automatique et validation à appliquer selon la devise. Par exemple, le symbole de devise doit être affiché lors de l'affichage automatique. En outre, le nombre de positions décimales ne doit pas dépasser le nombre valide défini pour la devise.

Remarque :
Pour la syntaxe prise en charge pour faire référence à d'autres éléments, voir Références à d'autres éléments.
<schema>
  <currency default="USD" 
    suppress="true"/>
  <balance dataType="money" 
   currencyRef="currency"/>
</schema>
"lookup"

Attribut supplémentaire obligatoire

lookup="nom de champ"

Définit un élément dont les valeurs valides sont définies à l'aide d'une consultation. Le champ de consultation est obligatoire.

<schema>
  <status dataType="lookup" 
   lookup="STATUS_FLG"/>
</schema>
"lookupBO"

Attribut supplémentaire obligatoire

lookupBO="nom d'objet métier"

Définit un élément dont les valeurs valides sont définies à l'aide d'une consultation avancée. L'objet métier de consultation avancée est obligatoire.

<schema>
  <category dataType="lookupBO" 
   lookupBO="CM-BusinessCategory"/>
</schema>
"boolean"

Définit un élément dont les valeurs sont Y(O) ou N.

<schema>
  <allowsEdit dataType="boolean"/>
</schema>
"date"

Définit un élément qui représente une date.

<schema>
  <startDate dataType="date"/>
</schema>

"dateTime"

Définit un élément qui représente une date et une heure.

Remarque :
Pour la configuration supplémentaire disponible pour les champs de date/heure représentant l'heure standard, voir Considérations sur l'heure standard.
<schema>
  <startDateTime 
  dataType="dateTime"/>
</schema>
"time"

Définit un élément qui représente une heure.

<schema>
  <startTime dataType="time"/>
</schema>
"uri"

Définit un élément capturant une URI. Les éléments définis avec ce type permettent de prendre en charge les listes d'autorisation et la substitution d'URI, comme indiqué dans la rubrique Référencer des URI.

<schema>
  <exportDirectory dataType="uri"/>
</schema>

Références à d'autres éléments

Plusieurs attributs permettent de faire référence à un autre élément du même schéma. La syntaxe prise en charge pour la référence XPath est la même dans tous les cas. Cette section donne des exemples qui font appel à l'attribut de référence par défaut (defaultRef).

Référence à un élément apparenté de même niveau :

<schema>
   <id mapField="ACCT_ID" required="true"/>
   <altId defaultRef="id" required="true"/>
</schema>

Référence à un élément dans un groupe de niveau supérieur :

<schema>
   <id mapField="ACCT_ID" required="true"/>
   <msgInfo type="group" mapXML="XML_FIELD">
     <altId defaultRef="../id" required="true"/>
   </msgInfo>
</schema>

Référence à un élément dans un groupe de niveau inférieur :

<schema>
   <id mapField="ACCT_ID" defaultRef="msgInfo/altId" required="true"/>
   <msgInfo type="group" mapXML="XML_FIELD">
     <altId required="true"/>
   </msgInfo>
</schema>

Référence à un élément dans un autre groupe :

<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>

Considérations relatives à l'heure légale et l'heure standard

La plupart des champs de date/heure représentent l'heure légale ; de ce fait, lorsqu'un fuseau horaire utilise l'heure d'été et l'heure d'hiver, le champ de date/heure capture l'heure actuellement observée. Cependant, pour éviter toute confusion ou ambiguïté, certains champs de date/heure doivent toujours être capturés en heure standard. Un bon exemple est celui des dates/heures associées à des données d'intervalle détaillées. Pour plus d'informations, voir Définir les fuseaux horaires.

Lorsque vous définissez un élément avec dataType="dateTime", vous pouvez utiliser legalTime="true" pour indiquer que les données capturées dans l'élément représentent toujours l'heure légale, ou utiliser stdTime="true" pour indiquer que les données sont stockées dans l'heure standard dans le fuseau horaire de base. Le fuseau horaire de base est défini dans les options d'installation.

Remarque :
Si un élément est mappé avec une table/un champ pour lequel Type d'heure standard a la valeur Physique, stdTime="true" est alors implicite. Pour plus d'informations, voir Champs.

Exemple :

<schema>
  <startTimeS dataType="dateTime" stdTime="true"/>
  <startTimeL dataType="dateTime" legalTime="true"/>
</schema>

Si le fuseau horaire qui représente le champ de date/heure n'est pas celui de l'installation, utilisez le paramètre facultatif stdTimeRef="XPath de l'élément de fuseau horaire" pour indiquer qu'il représente l'heure standard et préciser le fuseau horaire à utiliser. Utilisez legalTimeRef= lorsque l'élément est stocké en heure légale. Pour la syntaxe prise en charge pour faire référence à d'autres éléments, voir Références à d'autres éléments.

Exemple :

<schema>
  <alternateTimeZone fkRef="F1-TZONE" suppress="true"/>
  <startDateTimeS dataType="dateTime" stdTimeRef="alternateTimeZone"/>   
  <startDateTimeL dataType="dateTime" legalTimeRef="alternateTimeZone"/>
</schema>
Remarque :
Si un élément est mappé avec une table/un champ pour lequel Type d'heure standard a la valeur Elément référencé, stdTime="XPath" est alors implicite. Pour plus d'informations, voir Champs.
Remarque :
Lorsque les éléments du schéma sont capturés en heure standard, la matrice IU prend en charge une notation HTML permettant d'afficher automatiquement les données en appliquant une correction pour l'heure d'été. Pour plus d'informations, voir l'attribut HTML oraType="dateTime;".

Dans certains cas, les dates/heures sont capturées dans un fuseau horaire mais doivent être affichées avec un autre fuseau horaire. Dans ce cas, l'attribut displayRef="XPath" peut être utilisé en plus de l'attribut qui identifie le fuseau horaire dans lequel les données sont capturées. Pour la syntaxe prise en charge, voir Références à d'autres éléments.

<schema>
  <displayTimeZone fkRef="F1-TZONE" suppress="true"/>
  <startDateTimeS dataType="dateTime" stdTime="true" displayRef="displayTimeZone"/>
  <startDateTimeL dataType="dateTime" legalTime="true" displayRef="displayTimeZone"/>
</schema>

Attributs de mapping

Lorsque vous créez votre schéma, vous disposez des attributs de mapping ci-dessous.

Mnémonique Valeurs valides Description Exemples
mapField= "nom de champ"

Dans le cas d'un objet métier, l'attribut mapField sert à identifier la colonne de base de données à laquelle l'élément est associé. Dans le cas de schémas de service fonctionnel, l'attribut mapField= sert à lier un élément de schéma à un élément de service.

<schema>
  <factId 
   mapField="FACT_ID"/>
</schema>
mapChild= "nom de table"

L'attribut mapChild est utilisé uniquement pour le mapping d'objet métier. Il a deux usages :

  • Un, il permet de créer dans l'objet métier une liste correspondant à une table enfant d'un objet de maintenance.

  • Deux, mapChild peut être utilisé pour identifier la table enfant dans laquelle figure un champ mis à plat. Pour plus d'informations sur la mise à plat, voir la section sur la mise à plat plus loin.

Exemple de liste dans une table enfant dans un objet métier :
<persons type="list" 
   mapChild="CI_ACCT_PER"
  <personId mapField="PER_ID"/>
</persons>
mapList= "nom de liste"

L'attribut mapList est utilisé uniquement pour le mapping de service fonctionnel. Il a deux usages :

  • Un, il permet de créer dans le service fonctionnel une liste correspondant à une liste du service.

  • Deux, mapList peut être utilisé pour identifier la liste dans laquelle figure un champ mis à plat. Pour plus d'informations sur la mise à plat, voir la section sur la mise à plat plus loin.

Exemple de liste dans un service fonctionnel :
<selectList type="list" 
  mapList="DE" 
  <value mapField="COL_VALUE"> 
    <row mapList="DE_VAL"> 
      <SEQNO is="2"/> 
    </row> 
  </value>  
</selectList>
mapXML= "nom de champ"

L'attribut mapXML est généralement utilisé pour mapper des structures XML avec un champ CLOB/XML du service. A noter que, lorsque vous utilisez mapXML pour mapper une structure de liste ou de groupe (type="list" ou type="group"), vous n'avez pas besoin de mapper chaque élément enfant de la structure. Il est également possible de mapper des éléments de liste avec un champ CLOB associé à l'enfant de la liste.

<enrollmentRequest type="group" 
mapXML="CASE_CLOB">
  <messageID/>
  <sender/>
</enrollmentRequest>
<enrollmentKey 
mapXML="CASE_CLOB"/>
<enrollmentInfo type="list" 
mapChild="CI_CASE_CHILD">
  <sequence 
  mapField="CHILD_SEQ"/>
  <name 
  mapXML="CASE_CHILD_CLOB"/>
  <value 
  mapXML="CASE_CHILD_CLOB"/>
</enrollmentInfo>
isPrimeKey= "true"

Pour une liste définie dans un élément XML mappé (type="list" mapXML="CLOB"), vous devez indiquer une clé primaire. Celle-ci est utilisée par Framework pour déterminer si, au cours d'une mise à jour de l'objet métier, une opération d'ajout, de mise à jour ou de suppression d'élément de liste est requise.

Remarque :
Il n'est pas nécessaire d'indiquer la clé primaire pour une liste d'objet métier mappée avec une liste d'objet de maintenance. Lorsqu'une liste physique est mappée, la clé primaire est dérivée des métadonnées physiques existantes.
<questionnaire 
type="list" mapXML="CASE_CLOB">
  <question 
  isPrimeKey="true"/>
  <answer/>
</questionnaire>
orderBy= "XPath asc|desc, XPath asc|desc"

Par défaut, une liste définie dans un élément XML mappé (type="list" mapXML="CLOB") est triée sur le premier élément de la liste. L'attribut orderBy permet de définir un autre ordre de tri. La valeur de l'attribut est une liste de XPaths de champ (relatifs à l'élément de liste), séparés par des virgules, avec éventuellement un ordre de tri (valeur par défaut : ordre croissant).

Remarque :
Ceci n'est disponible que pour les listes mappées en tant que XML dans les objets métier.
<questionnaire type="list" 
  orderBy="page/section, 
page/sequence" 
mapXML="CASE_CLOB">
<question isPrimeKey="true"/>
<answer/>
<page type="group">
  <section/>
  <sequence/>
</page>
</questionnaire>

Attributs descriptifs

Les attributs ci-dessous peuvent être utilisés pour décrire un élément de schéma et fournir pour lui une configuration supplémentaire. En général, ils ne sont utilisés que pour les éléments de type champ.

Mnémonique Valeurs valides Description Exemples
<!-- commentaire -->

Utilisez les caractères spéciaux d'ouverture et de fermeture <!-- et --> pour encadrer un commentaire ajouté au schéma.

<schema>
  <!-- This schema is used to 
capture business information 
only, please refer to the 
'HUMAN' BO for person 
information -->
</schema>
description= "texte"

La description d'un élément peut servir à fournir une description interne de l'élément afin d'aider un lecteur du schéma à comprendre son utilité.

<schema>
  <active type="boolean" 
description="active account" 
label="Active"/>
</schema>
label= "texte"

L'étiquette d'un élément est un texte court qui est généralement placé devant l'élément dans l'interface utilisateur.

<schema>
  <active type="boolean" 
description="active account" 
label="Active"/>
</schema>
required= "true"

A utiliser pour exiger la présence d'un élément au cours de l'interaction avec un objet.

Remarque :
Pour les schémas d'objet métier et de service fonctionnel qui sont inclus dans un schéma de script de service, l'attribut required="true" n'est pas traité. C'est pour prendre en charge la possibilité pour le script de service de renseigner les éléments obligatoires avant d'appeler un objet métier ou un service fonctionnel incorporé.

<schema>
  <logDate mapField="LOG_DT" 
default="%CurrentDate" 
required="true" 
private="true"
</schema>
mdField= "code de champ"

L'attribut de champ de métadonnées sert à associer un élément aux métadonnées d'un champ. Le champ définit le type de données, ainsi que l'étiquette et le texte d'aide. Si vous liez un élément à un champ de métadonnées, vous n'avez pas besoin de spécifier ces attributs.

Remarque :
Dans un schéma d'objet métier, l'attribut mapField sert à dériver le type de données et l'étiquette. Un attribut mdField peut être fourni pour remplacer ces attributs, si nécessaire. Si l'élément est mappé avec une colonne XML, l'attribut mdField est nécessaire pour fournir le type de données et l'étiquette appropriés.
<schema>
  <active 
mdField="CM_ACTIVE_SW"/>
</schema>
fkRef= "code de référence de clé étrangère"

Si l'élément est une clé étrangère, en définir la référence permet à Framework de valider l'élément au cours des interactions avec le schéma et de fournir automatiquement des descriptions et des capacités de navigation.

<schema>
  <person fkRef="PER" 
mapField="CHAR_VAL_FK1">
   <row mapChild="CI_SA_CHAR">
      <CHAR_TYPE_CD is="PER"/>
    </row>
  </person>
</schema>
private= "true"

Marquer un élément comme étant privé évite qu'il ne soit exposé lors des interactions avec le schéma.

Remarque :
Un élément privé doit avoir une valeur par défaut.
<schema>
  <type mdField="SA_TYPE_CD" 
default="E1" private="true"/>
</schema>
suppress= "true"

Ce paramètre empêche un élément d'apparaître dans les interfaces utilisateur générées automatiquement.

Remarque :
Cet attribut peut être spécifié pour un groupe, auquel cas tous les éléments du groupe disparaissent.
Remarque :
Pour obtenir des conseils sur les valeurs par défaut des éléments supprimés, voir Attribution de valeurs par défaut et variables système.
<schema>
    <ls mdField="LIFE_SUPPORT_FLG" 
default="N" suppress="true"/<
</schema>
"blank"

Ce paramètre signifie que l'affichage IU automatique en mode affichage masque l'élément si sa valeur est vide. L'élément reste modifiable dans la matrice d'entrée, qu'il soit vide ou non.

<schema>
  <email mdField="EMAIL" 
suppress="blank"/>
</schema>
"input"

Ce paramètre signifie que l'affichage IU automatique ne fait pas apparaître l'élément dans la matrice d'entrée ; l'élément peut tout de même apparaître dans la matrice d'affichage s'il n'est pas vide.

Remarque :
Les éléments pour lesquels suppress="input" est spécifié fonctionnent comme avec suppress="blank". Si la valeur est vide, aucune valeur n'est affichée, ni dans la matrice d'affichage, ni dans la matrice d'entrée. Si l'élément a une valeur, il est affiché dans la matrice d'affichage et dans la matrice d'entrée.
Remarque :
Pour obtenir des conseils sur les valeurs par défaut des éléments supprimés, voir Attribution de valeurs par défaut et variables système.
<schema>
  <email mdField="EMAIL" 
suppress="input"/>
</schema>
noAudit= "true"

Ce paramètre empêche l'affichage de l'élément comme élément modifié dans l'emplacement de plug-in d'audit de l'objet métier. S'il est spécifié pour un noeud de groupe ou de liste, il s'applique à l'ensemble du noeud. Vous ne pouvez pas le spécifier pour un noeud racine de schéma, il n'est utilisable que pour des éléments de schéma.

Remarque :
Cet attribut s'applique uniquement aux schémas d'objet métier.
<schema>
  ...
  <version mapField="VERSION_NBR"
 noAudit="true"/>
  ...
  <workFields type="group"
 noAudit="true"
    <lastProcessedId/>
    <lastProcessedTime/>
  </workFields>
</schema>
storeEmptyNodes= "true"

Par défaut, les noeuds vides sont retirés de l'instance d'un objet métier lors de l'enregistrement. Ce paramètre permet à un groupe ou à un élément de liste de conserver explicitement ses noeuds vides.

Cet attribut peut s'avérer utile dans les situations ou des données d'objet métier sont échangées avec un système tiers et qu'il est nécessaire d'établir une distinction entre une valeur vide pour un élément qui participe à la synchronisation et un élément qui ne participe pas, et qui est donc entièrement omis dans le message.

Remarque :
Cette option n'est disponible que pour les éléments de groupe ou de liste.
<schema>
  <message type="group" storeEmptyNodes="true">
  ...
  </message>
</schema>
emitEmptyGroups= "true"

Par défaut, les noeuds vides ne sont pas inclus dans la sortie d'un objet métier ou d'un appel de service fonctionnel. Cet attribut est défini sur le noeud de schéma de niveau supérieur, ce qui permet d'inclure les noeuds vides de tous les groupes et éléments de liste dans la sortie.

Cet attribut peut être utile dans les mêmes situations qui peuvent nécessiter l'utilisation de l'attribut storeEmptyNodes=.

Remarque :
Cette option n'est disponible que pour les schémas d'objet métier et de service fonctionnel.
<schema emitEmptyGroups="true">
  <message type="group">
  ...
  </message>
</schema>
emitEmptyElements= "true"

Cet attribut est similaire à l'attribut emitEmptyGroups=, mais peut également être spécifié au niveau du champ. L'attribut est applicable à tous les types de schéma.

<schema>
  <messageNumber type="field" emitEmptyElements="true">
  ...
  </message>
</schema>
adheresToDA= Liste des noms de zone de données séparés par des virgules.

Cet attribut est applicable aux noeuds de schéma, de groupe et de liste. Il indique que ce noeud de sous-schéma est destiné à "ressembler" au schéma d'une des zones de données répertoriées, pour des raisons de polymorphisme en général.

Remarque :
L'approche recommandée pour appliquer la structure d'une zone de données partagée consiste à l'inclure dans le schéma. Cet attribut doit être limité aux cas d'utilisation où il est impossible d'inclure la zone de données.
<schema>
  <messageNumber type="group" adheresToDA="DataAreaName">
  ...
  </message>
</schema>

Constantes de schéma

Dans certains schémas appartenant à des produits, la conception veut qu'une valeur par défaut soit définie dans le schéma, mais, cette valeur étant propre à l'implémentation, elle ne peut pas être définie par le produit. Dans de tels cas, le produit peut avoir recours à la technique appelée "constante de schéma". La conception du schéma prévoit une constante déclarée. Au moment de l'implémentation, une tâche de configuration inclut la définition de la valeur appropriée pour la constante.

Par exemple, supposons que le produit comporte un algorithme qui crée un message sortant dans un certain cas. Le type de message sortant à utiliser doit être configuré par l'implémentation. Pour utiliser une constante de schéma pour définir le type de message sortant, l'installation standard doit configurer ce qui suit :

  • Une valeur de consultation de type d'option pour la consultation F1CN_​OPT_​TYP_​FLG est définie. Par exemple, M202 - Type de message sortant de finalisation d'activité avec le nom de valeur Java outmsgCompletion

  • Le schéma de base utilisé pour créer le message sortant de finalisation d'activité fait référence à la constante de schéma à l'aide du nom de valeur Java de la valeur de consultation du type d'option.

    ...
    <outboundMessageType mapField="OUTMSG_TYPE_CD" default="%Constant(outmsgCompletion)"/>
    ...

Au moment de l'implémentation, les utilisateurs administratifs doivent configurer le type de message sortant approprié pour la finalisation d'activité. Ensuite, accédez à Configuration Mutualisation de paramètres, sélectionnez le type de mutualisation de paramètres Constantes de schéma, sélectionnez le type d'option Type de message sortant de finalisation d'activité et indiquez le type de message sortant nouvellement créé comme valeur pour l'option.

Les constantes de schéma peuvent également être utilisées dans la syntaxe de mise à plat pour définir les éléments de ligne requis pour la mise à plat.

Attribution de valeurs par défaut et variables système

L'attribut "default" peut être utilisé pour attribuer des valeurs par défaut à des éléments de type champ ainsi qu'à des éléments de ligne requis pour la mise à plat. La valeur par défaut d'un champ peut être une constante ou une variable système.

Lorsqu'un élément est requis, la valeur par défaut est appliquée au niveau du serveur lors de l'ajout ou de la modification de l'enregistrement pour lequel aucune valeur n'est fournie pour cet élément.

Lorsqu'un élément est facultatif, une valeur par défaut peut être configurée en tant que valeur suggérée à l'utilisateur lorsque l'enregistrement est renseigné dans l'interface utilisateur en mode Ajouter. Les utilisateurs doivent pouvoir supprimer la valeur par défaut pour ce type d'élément et le système ne tentera pas de la renseigner au moment de l'enregistrement.

Remarque :

La norme de maintenance de liste est d'afficher une ligne vide pour une nouvelle liste qu'un utilisateur peut ou non choisir de remplir. Par conséquent, les valeurs par défaut de l'interface utilisateur ne sont pas affichées pour les éléments de liste.

Il n'est pas recommandé de configurer un attribut par défaut pour un élément facultatif qui n'est pas modifiable ou visible sur l'interface utilisateur en mode Ajouter (par exemple, un élément avec suppress="true" ou suppress="input" ou un élément de liste dont la valeur par défaut n'est pas affichée conformément au point précédent). La valeur par défaut de ce type d'élément est toujours appliquée, mais l'utilisateur n'a pas la possibilité de réinitialiser la valeur. En effet, cela peut entraîner des incohérences car l'affectation de valeurs par défaut ne s'applique pas aux champs facultatifs ajoutés via un cas d'utilisation autre que l'interaction de l'interface utilisateur.

Mnémonique Valeurs valides Description Exemples
default= "valeur" A utiliser pour attribuer la valeur indiquée comme valeur par défaut à l'élément. Les valeurs valides sont fonction de la valeur de dataType.
<schema>
  <perType mapField="PER_OR_BUS_FLG" 
default="P" required="true"/>
</schema>
<schema>
  <frequency dataType="number" 
default="1" required="true"/>
</schema>
"%CurrentDate" A utiliser pour attribuer la date actuelle comme valeur par défaut à l'élément. Applicable uniquement aux éléments de date.
<schema>
  <logDate mapField="LOG_DT" 
default="%CurrentDate" required="true"/>
</schema>
"%CurrentDateTime" A utiliser pour attribuer la date/heure actuelle comme valeur par défaut à l'élément. Applicable uniquement aux éléments de date/heure.
<schema>
  <logDateTime mapField="LOG_DTTM" 
default="%CurrentDateTime" 
required="true"/>
</schema>
"%StandardDateTime" A utiliser pour attribuer la date/heure standard comme valeur par défaut à l'élément. La date/heure standard est identique à la date/heure actuelle, sauf si l'heure d'été est en vigueur pour le fuseau horaire de base. Utilisable avec l'attribut stdTime.
Remarque :
Pour plus d'informations, voir Considérations sur l'heure standard.
<schema>
  <startDateTime mapField="START_DTTM" 
default="%StandardDateTime" 
required="true"/>
</schema>
"%ProcessDate" Vous pouvez attribuer la date de processus comme valeur par défaut. La date du processus diffère de la date actuelle car elle reste la même tout au long de l'exécution du processus. Quant à la date actuelle, elle reflète l'heure réelle du traitement. Elle est similaire à la date commerciale du batch, qui est un paramètre de batch standard.
<schema>
  <billDate mapField="BILL_DT" 
default="%ProcessDate" 
required="true"/>
</schema>
"%ProcessDateTime" Similaire à "%ProcessDate" mais pour les champs de date/heure.
<schema>
  <calcDateTime mapField="CALC_DTTM" 
default="%ProcessDateTime" 
required="true"/>
</schema>
"%CurrentUser" A utiliser pour attribuer l'utilisateur actuel comme valeur par défaut à l'élément.
<schema>
  <logUser mapField="LOG_USER" 
default="%CurrentUser" 
required="true"/>
</schema>
"%CurrentUserTimeZone" A utiliser pour attribuer le fuseau horaire de l'utilisateur actuel comme valeur par défaut à l'élément. Si le fuseau horaire de l'utilisateur actuel est introuvable, le fuseau horaire de l'installation est utilisé.
<schema>
  <timeZone 
default="%CurrentUserTimeZone" 
required="true"/>
</schema>
"%CurrentUserLanguage" A utiliser pour attribuer la langue de l'utilisateur actuel comme valeur par défaut à l'élément.
<schema>
  <custLanguage mapField="CUST_LANG" 
default="%CurrentUserLanguage" 
required="true"/>
</schema>
"%InstallationCurrency" A utiliser pour attribuer la devise de l'enregistrement d'installation comme valeur par défaut.
<schema>
  <currency mapField="CURRENCY_CODE" 
default="%InstallationCurrency" 
required="true"/>
</schema>
"%InstallationCountry" Vous pouvez attribuer le pays de l'enregistrement d'installation comme valeur par défaut.
<schema>
  <country mapField="COUNTRY" 
default="%InstallationCountry" 
required="true"/>
</schema>
"%InstallationLanguage" Vous pouvez attribuer la langue de l'enregistrement d'installation comme valeur par défaut.
<schema>
  <language mapField="LANGUAGE" 
default="%InstallationLanguage" 
required="true"/>
</schema>
"%Constant( )" Vous pouvez attribuer la valeur d'une constante de schéma comme valeur par défaut à un élément. Ci-dessous figure un exemple de constante de schéma utilisée comme valeur par défaut, le nom de valeur Java de la valeur de consultation étant 'customerLanguage'.
<language mapField="CUSTOMER_LANG" 
default="%Constant(customerLanguage)" 
required="true"/>
"%Context( )" Vous pouvez attribuer une valeur contenue dans une variable de contexte comme valeur par défaut.
Avertissement :
Les variables de contexte doivent être initialisées au sein d'un script serveur avant que la valeur par défaut de contexte du schéma puisse être appliquée. Pour plus d'informations, voir Variables de contexte.
Exemple de variable de contexte utilisée comme valeur par défaut :
<source mapField="PER_ID" 
default="%Context(source)" 
required="true"/>
Remarque :
Une variable de contexte définie dans un script doit être préfixée de $$. Lorsqu'il est fait référence à la variable dans %Context( ), le préfixe doit être omis.
defaultRef= "XPath"

A utiliser pour attribuer la valeur d'un élément comme valeur par défaut à un autre élément.

Pour la syntaxe prise en charge pour faire référence à d'autres éléments, voir Références à d'autres éléments.

Noeuds et attributs de mise à plat

Le terme "mise à plat" désigne l'action qui consiste à définir en tant qu'un ou plusieurs éléments isolés dans un schéma des éléments faisant partie d'une liste dans l'objet de maintenance. La mise à plat est possible lorsque la liste comporte d'autres attributs qui peuvent être définis pour décrire de manière unique le ou les éléments. Les caractéristiques représentent un cas courant d'utilisation de la mise à plat. Plutôt qu'être définies à l'aide d'un ensemble où l'utilisateur doit choisir un type de caractéristique puis définir une valeur, les caractéristiques d'un objet sont définies comme des éléments en tant que tels avec l'étiquette appropriée déjà affichée. Cette technique permet au concepteur du schéma et de l'interface utilisateur d'afficher chaque caractéristique à l'emplacement qui lui convient logiquement plutôt que groupée avec les autres.

Remarque :
Un élément mis à plat représente une ligne unique dans la base de données. Cette ligne est insérée lors de la création des valeurs mises à plat. Elle est mise à jour lorsque l'une des valeurs mises à plat est modifiée. Elle est supprimée lorsque toutes les valeurs mises à plat sont supprimées. Le fonctionnement des éléments avec date d'effet est légèrement différent - voir Mise à plat d'une liste avec date d'effet.
Remarque :
La mise à plat peut également être utilisée pour définir une liste, voir Liste mise à plat.

Identifier la liste ou la table enfant

Lors de la mise à plat d'une table enfant, le noeud de ligne est requis pour identifier la liste/table enfant d'où vient l'élément. Dans ce noeud, au moins un élément doit comporter une définition is= qui assure l'unicité de la ligne correspondante dans la base de données. Le noeud peut également définir des éléments ou champs de la ligne dont l'affichage est supprimé et auxquels la configuration attribue des valeurs par défaut.

  • Pour un objet métier, le noeud de ligne définit la table enfant à laquelle appartient le champ mis à plat.

    La syntaxe est la suivante <row mapChild="table name">. L'exemple ci-dessous concerne une liste d'acteurs pour un compte dans le produit Customer Care and Billing. Un acteur peut être désigné comme l'acteur "principal". L'exemple illustre la définition d'un élément explicite pour l'ID de l'acteur principal afin de simplifier les références à ce champ. Cet ID fait partie de la table enfant CI_​ACCT_​PER. Ce qui le rend unique est le fait que MAIN_​CUST_​SW a la valeur true (et qu'une seule ligne peut avoir cette valeur).

    <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>
    Remarque :
    L'exemple ci-dessus montre que le noeud de ligne peut également définir des éléments dans la liste dont l'affichage est supprimé et auxquels une valeur par défaut est attribuée. Cette syntaxe n'est jamais utilisée pour identifier une ligne particulière. A noter qu'une valeur par défaut peut être une chaîne littérale ou une variable système.
  • Pour un service fonctionnel, le noeud de ligne définit le nom de la liste à laquelle le champ mis à plat appartient.

    La syntaxe est la suivante <row mapList="list name">. L'exemple ci-dessous illustre deux entrées de liste mises à plat pour en faire une valeur et une description de champ.

    <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>

Identifier la liste ou le champ mis à plat de manière unique

La syntaxe is= est utilisée dans un élément "row" or "rowFilter" pour identifier la ligne de manière unique.

Mnémonique Valeurs valides Description Exemples
is= "valeur" A utiliser pour faire directement référence à une valeur.
<tdTypeCd 
  mapField="CHAR_VAL_FK1">
  <row 
    mapChild="F1_EXT_LOOKUP_VAL_CHAR">
    <CHAR_TYPE_CD 
   is="CM-TD-TYPE"/>
  </row>
</tdTypeCd>
"%Constant( )" Vous pouvez configurer un élément mis à plat à l'aide d'une constante de schéma. Au cours d'une interaction avec le service, la valeur de la constante de schéma est utilisée pour identifier l'élément mis à plat dans sa ligne enfant.

Exemple de constante de schéma utilisée dans la mise à plat, le nom de valeur Java de la valeur du champ de consultation étant "cmRate" :

<unitRate mapField="CHAR_VAL" 
  dataType="number">
  <row mapChild=
   "F1_EXT_LOOKUP_VAL_CHAR">
    <CHAR_TYPE is
   ="%Constant(cmRate)"/>
  </row>
</unitRate>
"%n" La valeur de substitution %n permet de faire référence à une instance de liste relative. On utilise généralement une telle instance pour configurer un élément mis à plat lorsque la clé de la table enfant est un numéro de séquence. n doit avoir une valeur entière positive. Au cours d'une interaction de lecture de l'objet métier, l'instance de liste relative (position) spécifiée par l'entier est renvoyée. Exemple avec une instance de liste relative, où la première instance de la liste est renvoyée.
<schema>
  <mainPhone mapField="PHONE">
    <row mapChild="CI_PER_PHONE">
      <PHONE_TYPE_CD 
      is="%Constant(mainPhoneType)"/>
      <SEQ_NUMis="%1"/>
    </row>
  </mainPhone>
</schema>
Documentation de référence :
Des valeurs supplémentaires de is= sont utilisées lors de la mise à plat d'une liste avec date d'effet. Pour plus d'informations, voir cette section.

Mise à plat d'un type de caractéristique prédéfini

Si le champ mis à plat figure dans un ensemble de caractéristiques et que le type de caractéristique est prédéfini, l'affichage IU automatique génère une liste déroulante pour la liste de valeurs valides. Par exemple, le schéma ci-dessous génère pour l'élément Usage une liste déroulante contenant les valeurs valides du type de caractéristique Utilisation du motif d'état (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>

Définir plusieurs éléments à partir de la liste

Lorsque plusieurs colonnes de la même liste doivent être incluses, le système fournit une notation abrégée pour copier les règles de mise à plat d'un autre élément afin de n'avoir pas à les répéter. Pour ce faire, le noeud de ligne comporte l'attribut rowRef ; il indique le nom de l'autre élément, qui définit les informations de mapping. L'exemple ci-dessous illustre la mise à plat des champs ID client et Reçoit duplicata facture provenant de la même liste d'acteurs pour un compte (où MAIN_​CUST_​SW a la valeur 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"/>

A noter que la notation ci-dessus montre également que rowRef peut figurer directement dans la définition des attributs de l'élément.

Remarque :
Pour la syntaxe prise en charge pour faire référence à d'autres éléments, voir Références à d'autres éléments.

Mise à plat à deux niveaux

Si l'objet de maintenance ou le service comporte des listes imbriquées sur deux niveaux, le système prend en charge la mise à plat d'un élément dans un élément mis à plat. Cette technique fait également appel à l'attribut rowRef. La mise à plat du second niveau fait référence à l'élément mis à plat du premier niveau. L'exemple ci-dessous illustre la mise à plat d'une caractéristique en un élément nommé legalContact pour le client "principal". Remarquez que l'élément legalContact comporte deux noeuds de ligne : un pour faire référence aux informations de mise à plat de son enregistrement parent et un pour définir sa table enfant.

<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>

A noter que la notation ci-dessus montre également que rowRef peut être défini en tant qu'attribut d'un noeud de ligne plutôt que directement dans la définition des attributs de l'élément.

Définir une liste mise à plat

Parfois, une liste ou une table enfant accepte plusieurs valeurs du même "type" et celles-ci doivent être présentées en tant que liste. Pour reprendre l'exemple ci-dessus, la liste des acteurs d'un compte peut identifier l'un d'eux comme l'acteur "principal". Cet acteur a été mis à plat en tant qu'élément isolé (avec attribution de valeur par défaut au type de relation de compte et suppression de son affichage). Pour tenir à jour les autres acteurs liés à un compte, vous pouvez définir une liste où chaque ligne capture l'ID d'acteur et le type de relation de compte.

La liste mise à plat est configurée à l'aide d'un élément rowFilter, et non avec un noeud de ligne. Le schéma ci-dessous illustre l'exemple décrit. Le noeud de liste définit la table enfant. rowFilter indique les critères qui identifient les lignes de la table à inclure. Les éléments de la liste sont définis dans le noeud de liste, en dehors de l'élément 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>

A noter que le système s'assure que, si un schéma contient des éléments isolés mis à plat et des listes mises à plat provenant de la même table enfant, les critères définissant ce qui les rend uniques sont analogues.

Mise à plat d'une liste avec date d'effet

Certaines listes de l'application comportent une date d'effet (et d'autres une date/heure d'effet). Par exemple, il existe des ensembles de caractéristiques avec date d'effet. Dans ces ensembles, le principe consiste à capturer pour un type de caractéristique une valeur qui peut changer au cours du temps. Il ne s'agit pas de prendre en charge plusieurs valeurs de caractéristiques en effet au même moment.

Certains objets de maintenance ont des caractéristiques avec date d'effet et aucune caractéristique basée sur une séquence. Pour ces entités, les implémentations peuvent utiliser la caractéristique pour définir un champ supplémentaire qui ne nécessite pas de dates d'effet.

Lorsque vous envisagez de concevoir un élément pour votre schéma qui représente une valeur dans un ensemble avec date d'effet, déterminez si la valeur est utilisée dans les processus, comme le calcul d'une facture, de sorte qu'il est important de capturer les modifications apportées à la valeur au fil du temps.

  • S'il n'est pas important de suivre les modifications apportées à la valeur, il est recommandé de définir la date d'effet sur une valeur fixe dans le schéma. (Exemples ci-dessous).
  • S'il est important de suivre les modifications apportées à la valeur, vous devez réfléchir à la façon dont vous souhaitez concevoir le schéma.
    • Une option consiste à définir une liste mise à plat comme décrit ci-dessus. La valeur et la date d'effet sont des éléments de cette liste. Dans ce cas d'utilisation, vous gérez la liste comme n'importe quelle liste. Vous pouvez ajouter ou supprimer des valeurs.
    • Une autre option consiste à définir une valeur unique mise à plat dans le schéma. Avec cette option, lors de l'extraction de l'enregistrement, la dernière valeur d'effet est renvoyée. Dans cette conception, la question importante est de savoir comment la date de référence est définie.
Remarque :
Pour la syntaxe prise en charge pour faire référence à d'autres éléments, voir Références à d'autres éléments.

Eléments mis à plat pour lesquels les modifications ne sont pas suivies

Voici un exemple de mise à plat d'un élément dans un ensemble avec date d'effet pour lequel la valeur n'a pas besoin d'avoir une date d'effet. Dans ce cas, il est recommandé de coder simplement une date non modifiable dans l'attribut 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>

Eléments mis à plat pour lesquels les modifications sont avec date d'effet

Si vous voulez que le schéma d'objet métier mette à plat une valeur avec date d'effet qui doit suivre les modifications au fil du temps, la valeur à plat représente la dernière entrée effective. Dans ce cas, il est recommandé de définir explicitement le champ de date ou de date/heure en tant qu'élément. La syntaxe de l'attribut is= permet d'indiquer que le champ de date explicite est la date à utiliser pour la valeur.

Mnémonique Valeurs valides Description Exemples
is= "%effectiveDate( )" A utiliser pour indiquer que la date à utiliser est la valeur d'un autre élément.
Remarque :
Pour la syntaxe prise en charge pour faire référence à d'autres éléments, voir Références à d'autres éléments.
<schema>
  <price mapField="CHAR_VAL" 
   dataType="number" required="true">
    <row mapChild="CI_SA_CHAR">
      <CHAR_TYPE is="PRICE"/>
      <EFFDT 
   is="%effectiveDate(priceEdate)" />
    </row>
  </price>
<priceEdate mapField="EFFDT" 
  rowRef="price"/>
</schema>
"%effectiveDateTime( )" A utiliser pour indiquer que la date/heure à utiliser est la valeur d'un autre élément.
Remarque :
Pour la syntaxe prise en charge pour faire référence à d'autres éléments, voir Références à d'autres éléments.
<schema>
  <price mapField="CHAR_VAL" 
  dataType="number">
    <row mapChild="RATE_CHAR">
      <CHAR_TYPE is="PRICE"/>
      <EFFDTTM 
  is="%effectiveDateTime(priceEdatetime)"/>
    </row>
  </price>
  <priceEdatetime mapField="EFFDTTM" 
  rowRef="price"/>
</schema>

Vous devez déterminer si l'élément de date ou de date/heure explicite doit être affiché dans l'interface utilisateur lorsque le champ mis à plat est affiché ou s'il doit être supprimé. Les concepteurs doivent également envisager la boîte de dialogue utilisateur permettant de mettre à jour la valeur. Il peut être plus intuitif que le champ mis à plat soit mode affichage uniquement et de disposer d'une boîte de dialogue distincte pour mettre à jour la valeur avec date d'effet.

Pour cette option, il est suggéré que la page de maintenance de l'objet comporte une zone distincte qui affiche l'historique des valeurs avec date d'effet au fil du temps. La dernière valeur peut également être incluse dans cette zone.

Notez que pour des raisons de rétrocompatibilité, le système prend également en charge les options suivantes. Toutefois, elles ne sont pas recommandées. Elles définissaient implicitement la date de référence comme la date actuelle à tout moment. Les options prenaient en charge l'ajout de nouvelles lignes avec date d'effet lorsque la valeur changeait. Mais cette technique entraînait également l'apparition de nouvelles lignes avec date d'effet lorsque d'autres éléments du même schéma étaient mis à jour. Les nouvelles lignes présentaient la date ou date/heure actuelle avec la même valeur de ligne car la date ou date/heure de référence était la date actuelle, correspondant à une modification. Le produit ne recommande pas de gérer une caractéristique avec date d'effet sans définir la date ou la date/heure comme élément explicite.

Mnémonique Valeurs valides Description Exemples
is= "%effectiveDate"

Cette configuration n'est pas recommandée

<schema>
  <price mapField="CHAR_VAL" 
  dataType="number">
    <row 
  mapChild="CI_SA_CHAR">
      <CHAR_TYPE is="PRICE"/>
      <EFFDT
   is="%effectiveDate"/>
    </row>
  </price>
</schema>
"%effectiveDateTime"

Cette configuration n'est pas recommandée

<schema>
  <price mapField="CHAR_VAL" 
   dataType="number">
    <row mapChild="RATE_CHAR">
      <CHAR_TYPE is="PRICE"/>
      <EFFDT 
    is="%effectiveDateTime" />
    </row>
  </price>
</schema>

Zone de recherche

Un élément de schéma de matrice IU permet d'activer une boîte de dialogue de recherche automatique lorsque le schéma est inclus dans une matrice IU de maintenance.

Remarque :
Notez qu'il est possible de configurer une référence de clé étrangère fkRef avec une zone de recherche. Si un élément de schéma comporte une référence de clé étrangère mais aucun des attributs de recherche explicites (décrits ci-dessous), les informations de recherche de la référence de clé étrangère fkRef sont utilisées dans la matrice IU. En d'autres termes, si l'élément de schéma comporte déjà une référence de clé étrangère fkRef, les attributs de recherche explicites du schéma servent uniquement à remplacer les informations de recherche de la référence de clé étrangère.
Remarque :
Pour plus d'informations sur la configuration des zones de recherche, voir Attributs et fonctions de matrice IU.

search="search zone"

L'attribut "search" peut être utilisé dans un schéma de matrice IU ; il permet de générer automatiquement l'attribut de matrice IU "oraSearch". La zone de recherche est une zone de l'explorateur configurée pour la recherche.

<person fkRef="PER" search="C1_PSRCH"/>

searchField="search field:element|'literal';"

L'attribut "searchField" ne peut être utilisé que conjointement à l'attribut "search". Il est utilisé pour générer l'attribut de matrice IU "oraSearchField". La valeur de "searchField" est utilisée pour renseigner un filtre de zone de recherche avec une valeur initiale quand la zone de recherche est lancée. La valeur initiale peut également être un littéral. La valeur de "searchField" est utilisée pour mise en correspondance avec la mnémonique de filtre également nommée "searchField".

Champ de recherche : élément|'littéral'. Le champ de recherche représente le filtre de zone de recherche à renseigner au lancement. L'élément est l'élément de schéma de la matrice utilisé pour renseigner le filtre. Il est facultatif ; s'il reste vide, sa valeur par défaut est l'élément pour lequel cet attribut est spécifié. Le champ de recherche peut également être un littéral.

Remarque :
Il est possible de renseigner plusieurs filtres dans la zone de recherche au lancement, mais plusieurs paires de champ de recherche doivent être construites dans la valeur de l'attribut. La valeur spécifiée ici est utilisée pour créer directement l'attribut HTML "oraSearchField" dans la matrice IU où ce schéma est défini.
Remarque :
Notez que la référence de l'élément est relative. Pour la syntaxe prise en charge pour faire référence à d'autres éléments, voir Références à d'autres éléments.
<person fkRef="PER" search="C1_PSRCH" searchField="PERSON; PER_TYPE:personType;"/>

searchOut="search field:element;"

L'attribut "searchOut" ne peut être utilisé que conjointement à l'attribut "search". Il est utilisé pour générer l'attribut de matrice IU "oraSearchOut". La valeur de "searchOut" est utilisée pour capturer une valeur sélectionnée dans la zone de recherche et la transférer dans un élément de matrice IU. Elle doit correspondre à la mnémonique ELEMENT_​NAME figurant dans le paramètre de zone des résultats de recherche.

Champ de recherche : élément. Le champ de recherche représente le résultat de zone de recherche ramené dans la matrice IU. L'élément est l'élément de schéma de la matrice à renseigner. Il est facultatif ; s'il reste vide, sa valeur par défaut est l'élément pour lequel cet attribut est spécifié.

Remarque :
Il est possible de renseigner plusieurs éléments à la suite de la sélection dans la zone de recherche, mais plusieurs paires de champ de recherche doivent être construites dans la valeur de l'attribut. La valeur spécifiée ici est utilisée pour créer directement l'attribut HTML "oraSearchOut" dans la matrice IU où ce schéma est défini.
Remarque :
Notez que la référence de l'élément est relative. Pour la syntaxe prise en charge pour faire référence à d'autres éléments, voir Références à d'autres éléments.
<person fkRef="PER" search="C1_PSRCH" searchField="PER_ID" 
searchOut="PER_ID;PRIMARY_PHONE:personPhone;"/>

Etendre la sécurité pour un script de service

La sécurité des services applicatifs est mise en oeuvre lorsqu'un objet métier ou un script de service est appelé par un script APT ou une matrice IU, mais pas lorsqu'il est appelé par un script de service. Si vous voulez qu'elle le soit également dans ce cas, vous devez ajouter l'attribut ci-dessous au schéma du script de service.

appSecurity="true"

L'attribut "appSecurity" n'est disponible que pour les schémas de script de service. Lorsqu'il est spécifié, les droits d'accès de service applicatif de tout objet métier ou script de service appelé directement par le script de service sont évalués.

<schema appSecurity="true">
  ...
</schema>

Remplacer l'action par défaut pour un service fonctionnel

Si vous voulez appeler un service fonctionnel avec une action autre que la lecture, vous devez indiquer l'attribut d'action dans le schéma du service fonctionnel du noeud principal.

pageAction="add, change, delete"

L'attribut d'action permet de remplacer l'action par défaut, qui est la lecture, dans un schéma de service fonctionnel. Les valeurs valides sont :

  • add

  • update (action autorisée uniquement pour les services d'objet de maintenance)

  • change (action non autorisée pour les services d'objet de maintenance)

  • delete

  • read (action par défaut en l'absence de pageAction)

Exemple :

<schema pageAction="change">
  <parm type="group">
    <ele1/>
    <ele2/>
  </parm>
</schema>

Spécifier searchBy pour un service de recherche

Si vous voulez appeler un service de recherche, vous devez spécifier explicitement l'attribut "searchBy" approprié pour les éléments mappés dans le schéma.

searchBy="MAIN"

Vous pouvez obtenir la liste des valeurs de l'attribut "searchBy" en consultant le schéma XML lié au service fonctionnel à l'aide de l'URL d'affichage du XML. Ci-dessous figurent quelques valeurs classiques :

  • MAIN

  • ALT

  • ALT2

  • ALT3

  • etc.
<schema searchBy="MAIN">
  <AccountID mapField="ACCT_ID"/>
  <Results type="list">
    <AccountID mapField="ACCT_ID"/>
  </Results>
</schema>

Inclure d'autres schémas

Vous pouvez inclure un schéma dans un autre schéma sans aucune restriction, tous les types de schéma peuvent être inclus dans tous les autres types. Les inclusions imbriquées sont également autorisées, actuellement sans restriction de profondeur.

L'inclusion d'un schéma nécessite deux éléments :

  1. Un noeud "include"
  2. Un attribut de nom

Le tableau ci-dessous indique les instructions include prises en charge.

Mnémonique Description Exemples

<includeBO name=" "/>

Inclure un schéma d'objet métier dans un autre schéma est autorisé.

A noter que les règles de mapping d'un schéma d'objet métier ou de service fonctionnel peuvent ou non avoir du sens dans le contexte du schéma parent. L'inclusion d'autres schémas se fait à vos risques et périls. Sachez toutefois que le traitement XML a ceci de très utile que Framework ignore les attributs non pertinents. En d'autres termes, inclure des attributs de mapping dans un schéma de script ne peut pas être nocif.

<schema>
  <cust type="group">
<includeBO name="C1-Person"/>
</cust>
  <spouse type="group">
<includeBO name="C1-Person"/>
</spouse>
</schema>

<includeBS name=" "/>

A utiliser pour inclure un schéma de service fonctionnel.

<schema>
<includeBS name="F1-ReadMOLog"/>
</schema>

<includeDA name=" "/>

A utiliser pour inclure un schéma de zone de données.

<schema>
<includeDA 
   name="F1CommonSchemaFieldData"/>
</schema>

<includeMP name=" "/>

A utiliser pour inclure un schéma de matrice IU.

<schema>
<includeMP 
   name="F1-DisplayRecordActions"/>
</schema>

<includeSS name=" "/>

A utiliser pour inclure un schéma de script de service.

<schema>
<includeSS name="F1-ActShowZn"/>
</schema>

Attributs de compatibilité

Ces attributs ont été ajoutés dans le cadre des mises à niveau depuis les précédentes versions de Framework.

fwRel="2"

Cet attribut a été ajouté aux schémas créés dans Framework 2 dans le cadre de la mise à niveau vers Framework 4. Les nouveaux schémas n'ont pas besoin de cet attribut. Il n'est pas conseillé de le modifier sans comprendre les différences de fonctionnement qu'il implique car toute modification inappropriée pourrait aboutir à des erreurs.

Remarque :
Dans les schémas créés sous Framework 2 avec l'attribut fwRel="2", les champs mappés XML se trouvant sous des groupes sont stockés en tant qu'éléments XML de niveau supérieur dans le champ mapXML. Par conséquent, si plusieurs champs figurant dans différentes structures de groupe devaient avoir le même nom, leurs stockages entreraient en conflit les uns avec les autres, aboutissant à des erreurs. Le nouveau fonctionnement, sans l'attribut fwRel="2", préserve la structure de groupe et évite les conflits.
<schema fwRel="2"
    ...
</schema>