ConnectHTML

Fonction La commande connectHTML vous permet de lire des valeurs d’une page HTML que vous avez affichée à l’aide de la commande  View. Vous pouvez également modifier des valeurs et exécuter certaines actions, telles que cliquer sur un lien par exemple. Vous pouvez aussi bien utiliser vos propres pages HTML que n’importe quelle page de l’Internet ou Intranet. L’affichage à l’aide de la commande View peut être intégré dans l’écran SAP ou alors “flottant” dans une fenêtre séparée. Pour plus de détails, veuillez vous reporter à la documentation  -> “Special Topics”,  “Automatiser des pages Internet”.
Exemple connectHTML click=“bouton_Continuer”

Le bouton “Continuer” sera appuyé dans la page HTML actuellement affichée à l’aide de la commande View.

Format  Dans le cas où une seule page HTML est ouverte à l’aide de View - ce qui est le cas standard – vous pouvez utiliser
  • connectHTML options  

sans spécifier  window=“…”. Toutes les options et variables HTML html[...] se réfèrent alors cette page. Dans le cas où il y aurait plusieurs fenêtre View actives, vous pourriez spécifier explicitement la fenêtre souhaitée:

  • connectHTML options  window=“&V[viewwindow]“

Ici vous utilisez le numéro de fenêtre fourni par une commande “View …. returnwindow=viewwindow“. Toutes les options et variable HTML se réfèrent alors à cette fenêtre.

Vous devez utilisez une commande connectHTML uniquement lorsque vous souhaitez utiliser des options particulières (voir plus bas) ou si vous souhaitez spécifier une fenêtre particulière. Autrement vous pouvez utiliser directement les variables HTML:

  • Set html[nom] “valeur”         // saisit une valeur dans la page HTML
  • “… &html[nom] …”           // lit une valeur de la page HTML        
  • if html[nom]                   // teste l’existence d’un élément HTML        

 

Options 
 

window=

Spécification explicite du numéro de fenêtre retourné par une commande  View …. returnwindow=.

Dans ce contexte, veuillez tenir compte des remarques suivantes: lorsque vous affichez une page HTML à l’intérieur d’un écran SAP (pas en tant que fenêtre séparée) et que vous avez besoin de revenir à cette page avec la commande  connectHTML ou que vous avez besoin d’utiliser des variables HTML pour cette page dans le même scripte, vous devez travailler avec l’option returnwindow= dans la commande  View. C’est uniquement en utilisant cette option que vous garantissez que la fenêtre view soit ouverte de manière synchrone. Sans option  returnwindow= vous pouvez faire référence à la page HTML uniquement lorsque l’écran SAP est affiché, par ex. dans un InputScript lancé à l’aide d’un bouton sur cet écran ou lorsque le même écran est affiché à nouveau sans changer la commande View.
Ceci n’est pas nécessaire lors d’affichage HTML dans une fenêtre séparée affichée avec
View …. -floating, étant donné que ces fenêtres sont toujours affichées de manière synchrone, vu qu’elles sont créées avant l’exécution de la commande scripte suivante.

click= Désignez l’élément HTML (par ex.: un bouton, une image ou un lien) qui devra être cliqué. Par exemple:

connectHTML click=“image_search.jpg”

geturl= Ceci retourne l’URL actuel de la page HTML. Vous pouvez utiliser cette option si vous voulez être sûr que l’utilisateur n’ait pas quitté la page. Exemple:

connectHTML geturl=“url”
if not Q[ok] or not V[url=http:// ... /panier.asp]
   Return “E: Veuillez d’abord afficher votre ‘panier d’achats’” -statusline
endif

seturl= Affiche la page HTML avec l’URL donné.
gettitle= Retourne la page titre.
settitle= Fixe un nouveau titre de page. Vu que  View n’affiche pas le titre de page, ceci est uniquement à usage interne si vous souhaitez lire le titre de la page ultérieurement.
 

listelements=

Tous les éléments HTML de la page actuelle sont stockés dans la variable texte spécifiée. Ceci est particulièrement intéressant lors du développement de scriptes car vous pouvez utiliser la fonction “copier&coller” dans la fenêtre texte pour récupérer les noms des éléments HTML. Exemple:

// GuiXT Script
Pushbutton (toolbar)
“Lire éléments HTML” process=“get_html_elements.txt”
Textbox
(10,0) (40,120) name=“elm”

// InputScript “get_html_elements.txt”
connectHTML
listelements=“elm”

-shownames A utiliser lors du développement de scriptes: les noms de chaque élément HTML est affiché sous forme de “tooltip” sur la page HTML lorsque l’on positionne la souris sur l’élément pendant quelques secondes.
searchbrowserwindow= Retourne une fenêtre ouverte de browser (uniquement Internet Explorer), ou 0 si elle n’est pas trouvée. A l’aide de:

if Q[ok]

endif

vous pouvez tester si une fenêtre de browser a été trouvée ou non. Cette fenêtre peut être utilisée dans toutes les commandes connecthtml de la même manière qu’une fenêtre View.

index= En liaison avec searchbrowserwindow=. Vous spécifiez un nombre (i=1,2,3,..) pour la recherche de la fenêtre browser.
Utiliser les éléments HTML Les variables HTML peuvent être utilisées de la même manière que les variables normales de scripte V[...]. La notation est html[...]. Vous pouvez l’utiliser dans les contextes suivants::
  • Set html[nom] “valeur”         // saisit une valeur dans la page HTML
  • “… &html[nom] …”           // lit une valeur de la page HTML        
  • if html[nom]                   // teste l’existence d’un élément HTML        

Après avoir fixé une nouvelle valeur, GuiXT invoque automatiquement la routine “on change” de la page HTML pour cet élément. Dans le cas de champs de type drop down (éléments de sélection) il est quelques fois nécessaire d’exécuter un click sur cet élément après l’avoir modifié à l’aide de la commande click=. Autrement, il se pourrait que certaines tâches internes ne soit pas exécutées sur la page HTML.

Lorsque vous automatisez des actions de l’utilisateur pour une page HTML, les moyens offerts par connectHTML sont suffisants pour la plupart des cas (affecter des valeurs, cliquer sur des liens, boutons ou images). Dans certains cas particuliers, pour lesquels des fonctions particulières en JavaScript ou VBScript sont utilisées ou si il y a des plugins particuliers sur la page, L’automatisation des actions de l’utilisateur pourrait dépasser les possibilités de la commande connectHTML.

Désignation des éléments HTML Nous vous conseillons d’utiliser pendant le développement d’utiliser les options listelements= et -shownames pour afficher les noms des éléments HTML.

GuiXT construit le nom d’un élément de la manière suivante: le nom commence toujours avec le type de l’élément  (image_, button_, checkbox_, …). Ensuite, vient l’id interne ou le nom de l’élément ou le texte utilisateur (comme le nom sur un bouton). Tous les caractères “espace” sont remplacés par un “_”. Dans le cas de noms identiques, GuiXT ajoutera un suffixe .2, .3,… . Exemples:

html[image_help.jpg]
html[link_Search]
html[link_Search.2]
html[select_Country]
html[text_Search_Filter]

Tableaux HTML  L’utilisation de tableaux est relativement courant dans les pages HTML. Ils peuvent être embriqués les uns dans les autres. GuiXT vous permet d’adresser chaque cellule individuellement. Pour les noms des cellules, GuiXT utilise la notation suivante: cell_i.j.k est le nom de la cellule n° k de la ligne n° j de la table n° i.

Par exemple,

html[cell_1.4.5]

désigne une cellule dans le premier tableau de la page, précisément la cellule dans la ligne 4, colonne 5 (les numérotations débutent toujours avec 1).

Pour les tableaux embriqués, le nom commence avec le nom de la cellule qui contient le tableau, suivi par ‘~’  et les coordonnées normales de la cellules à l’intérieur du tableau embriqué. Exemple:

html[cell_3_1_7~1_2_2~2.2.4]

Ceci est la cellule suivante: débutez avec le troisième tableau de la page. Choisissez la cellule dans la ligne 1, colonne 7. Il y a au moins un tableau embriqué dans cette cellule. Prenez le premier et ensuite la cellule en ligne 2, colonne 2 du premier tableau embriqué. Dans cette cellule, il y au moins 2 autres tableaux embriqués (niveau 2). Prenez le deuxième, allez à la ligne 2 et colonne 4. Vous avez atteint la cellule  cell_3_1_7~1_2_2~2.2.4.

Compter leslignes pour chaque tableau

GuiXT associe pour chaque tableau une variable HTML “…_rows” qui représente le nombre de lignes pour ce tableau. Par exemple:

“&html[table_1_rows]“

désigne le nombre de lignes du premier tableau. Pour les tables embriqués, on utilise la même règle décrite plus haut. Exemple:

“&html[table_3_1_7~1_rows]“

C’est le nombre de lignes du premier tableau contenu dans la cellule en ligne 1, colonne 7 du 3 tableau de la page.

Au lieu d’utiliser le nombre de lignes dans un tableau, il est souvent plus judicieux d’utiliser l’existence d’une certaine cellule. Exemple:

// indice de ligne
Set V[i] 1
  

label
début

// plus de lignes?
if not html[
cell_1.&V[i].1]
  goto
fin
endif

… process table row

Set V[i] &V[i] + 1
goto
début

label
fin

Boutons de sélection (checkbox) et  boutons radios Les valeurs des boutons de sélection ou des boutons radios sont représentées par 0 et 1. Lorsque vous sélectionnez un bouton radio tous les autres boutons radios du même groupe sont remis à zéro automatiquement.  Exemple:

Set
html[radio_English] 1
Temps de chargement des pages HTML Après quelques actions, par ex. appuyer sur un bouton, une nouvelle page HTML doit être chargée ce qui peut prendre du temps. Toute commande

connectHTML  

attendra d’abord que la page soit entièrement chargée avant d’exécuter l’action spécifiée. Après avoir attendu 2 minutes, connectHTML retourne à l’exécution du scripte. A l’aide de

if not Q[ok]
  Return
“….”
endif

après une commande  connectHTML vous pouvez vérifier si une action a été exécutée avec succès ou non.

ConnectHTML