ClientScriptBuilderHelper (via un appel à sa méthode setAttr) inclut le HTML généré par JavaScript.jsp <RecordFormatName> dans la sortie de PageBuilder.jsp. Chaque JSP JavaScript du format d'enregistrement commence par le même tag jsp :useBean (déclarant un bean IDisplayRecord) comme son JSP partenaire (<RecordFormatName>.jsp). Un JSP JavaScript de non-format d'enregistrement de sous-fichier
JavaScript orienté objet
a, pour
chaque champ, un appel vers une
fonction JavaScript nommée cf (abréviation
de create field). Pour des
formats de sous-fichiers, ces appels de
niveau de champ sont destinés à scf
(abréviation de subfile create field). Ce
qui suit, par exemple, est l’appel de
fonction cf pour le champ de format
d’enregistrement BEERIN nommé
CATEGORY:
cf("1<%=zOrder%>_BEERIN$CATEGORY",9,5,
{<% if(BEERIN.isMDT0n("CATEGORY"))
{%>mdt:true,<% }%>
check:"ME;",values:"L;A;P;B;W;S;",
datalength:1});
Le HTML généré traduit l’appel de fonction ci-dessus en
cf("11_BEERIN$CATEGORY",9,5,
{check:"ME;",values:"L;A;P;B;W;S;",
datalength:1});
Mais pour comprendre ce que fait ce code JavaScript
généré, je dois vous présenter JavaScript orienté objet
de WebFacing, qu’IBM utilise dans ses routines Client-
Script/webface.js. La figure 3 montre la déclaration de deux
fonctions JavaScript: WFOutputField et WFInputField.
Immédiatement après les déclarations de fonctions vides, on
trouve un ensemble de définitions d’attributs et leurs
paramètres par défaut. Le mot prototype est le nom d’une propriété
pour tous les objets JavaScript ; il est utilisé pour définir
un attribut qui sera disponible avec toutes les instances de ce
type d’objet. Quand le JavaScript webface.js est chargé initialement
dans une fenêtre navigateur WebFacing, il instancie un
objet appelé wfInfoDB avec l’instruction suivante:
var wfInfoDB = new Object() ;
Ensuite, lorsque les fonctions cf et scf provenant du JSP
JavaScript du format d’enregistrement sont traitées pour
chaque champ, des instances des objets WFOutputField sont
créées et leurs références assignées à la variable wfInfoDB :
wfInfoDB[idStr] = new WFInputField();
JavaScript adapte les types de variables selon leur mode
d’utilisation. Donc, même si wfInfoDB a été créé initialement
pour référencer un objet, dès qu’il est utilisé comme une matrice,
JavaScript morphe wfInfoDB dans un type array. Il est
intéressant de noter qu’on peut indexer les matrices
JavaScript par chaînes. Ainsi, le idStr dans l’exemple précédent
fait référence à un nom de champ HTML tel que
11_BEERIN$CATEGORY. Notez que vous définissez des
champs en sortie seule avec une fonction JavaScript appelée
rc (abréviation de row/column), et la fonction rc instancie et
assigne les objets WFOutputField aux éléments de matrice
wfInfoDB.
La fonction cf prend une liste de paramètres qui inclut le
nom du champ ainsi que les valeurs ligne et colonne. La fonction
scf prend le nom du champ, mais pas les valeurs de ligne
ou de colonne. Mais le dernier paramètre des deux fonctions
cf et scf est une matrice d’initialiseurs d’objets JavaScript placés
entre accolades. Ces initialiseurs ont la forme <object attribute
name>:<value>. L’exemple suivant est la matrice
des valeurs d’initialiseur prises du dernier paramètre de l’appel
de fonction cf montré précédemment :
{check:"ME;",values:"L;A;P;B;W;S;",
datalength:1}
A noter comment les noms des attributs d’objet correspondent
aux paramètres du prototype WFInputField dans la
figure 3.
Les deux fonctions cf et scf invoquent une fonction
générique appelée crtfld (abréviation de create field). La
fonction crtfld crée l’objet WFInputField, définit les propriétés
WFInputField avec la matrice d’initialiseur, définit l’attribut
dhtml pour référencer le champ d’entrée HTML, puis
modifie la manière dont ce champ d’entrée HTML traite les
événements UI du navigateur. Cela mérite une explication :
les éléments d’entrée HTML peuvent se voir associer des
fonctions JavaScript pour s’exécuter quand l’un quelconque
des événements suivants se produit : onKeyPress, onPaste,
onClick, onSelect, onBlut, onFocus, onMouseOver,
onMouseOut, onMouseUp et onKeyUp.
Le fichier webface.js contient des dizaines de fonctions
JavaScript qui ont été codées pour simuler la fonctionnalité
5250. (Par exemple, handleCHECK_ER, handleDSPATR_SP,
respectMaxLengthOnKeyPress, onPasteUpdateCursorOffset,
checkCharShift.) Et, comme l’un quelconque des événements
GUI du navigateur standard peut avoir à manipuler
plusieurs de ces appels de fonctions de simulations 5250, la
fonction crtfld utilise une routine appelée addWF-Handler-
OnTop. Comme son nom l’indique, la fonction addWFHandlerOnTop
ajoute du code JavaScript au code qui a déjà
été défini pour s’exécuter quand un événement UI du
navigateur spécifique se produit.
Téléchargez cette ressource
Microsoft 365 Tenant Resilience
Face aux failles de résilience des tenants M365 (configurations, privilèges, sauvegarde). Découvrez 5 piliers pour durcir, segmenter et surveiller vos environnements afin de limiter l’impact des attaques. Prioriser vos chantiers cyber et améliorer la résilience de vos tenants Microsoft 365.
Les articles les plus consultés
- N° 2 : Il faut supporter des langues multiples dans SharePoint Portal Server
- Partager vos images, vidéos, musique et imprimante avec le Groupe résidentiel
- Afficher les icônes cachées dans la barre de notification
- Cybersécurité Active Directory et les attaques de nouvelle génération
- IBM i célèbre ses 25 ans
Les plus consultés sur iTPro.fr
- L’analytique prédictive au service de la décarbonation en France
- Ofelia, ex-Bonitasoft, lance une solution d’orchestration IA agentique
- Le bruit au travail et ses effets sur la concentration dans les bureaux modernes
- Cyberattaques assistées par IA : Pourquoi le modèle Mythos d’Anthropic représente une menace sérieuse pour la cybersécurité
Articles les + lus
Microsoft Build 2026 : contre-offensive des modèles maison face à OpenAI et Anthropic
Rhea1 : SiPearl allume le CPU européen le plus ambitieux pour le HPC et l’IA souveraine
Analyse Patch Tuesday Mai 2026
Les coûts cachés des merge requests générées par l’IA
Femmes et métiers de la tech : une attractivité réelle freinée par des stéréotypes persistants
À la une de la chaîne Tech
- Microsoft Build 2026 : contre-offensive des modèles maison face à OpenAI et Anthropic
- Rhea1 : SiPearl allume le CPU européen le plus ambitieux pour le HPC et l’IA souveraine
- Analyse Patch Tuesday Mai 2026
- Les coûts cachés des merge requests générées par l’IA
- Femmes et métiers de la tech : une attractivité réelle freinée par des stéréotypes persistants
