Utilisation de l'interface Portal Scripting Interface

Obtenez plus d'informations sur les différents modes que vous pouvez utiliser avec l'interface de script du portail.

Informations sur les conditions préalables

L'interface de script du portail fournie par HCL Digital Experience repose sur l'outil de script wsadmin qui est fourni par IBM® WebSphere® Application Server. Par conséquent, avant d'utiliser l'interface de script du portail, familiarisez-vous avec le mode d'emploi de l'outil wsadmin de WebSphere® Application Server.

Mode interactif

Utilisez le mode interactif si vous souhaitez interagir directement et dynamiquement avec le portail afin d'effectuer des tâches administratives simples ne devant être effectuées qu'une seule fois. Par exemple, l'administrateur souhaite modifier les droits d'une page pour un utilisateur donné ou l'administrateur souhaite ajouter un portlet à une page. Utilisez le mode interactif si vous n'avez pas l'intention de répéter cette opération.

Avant de lancer une session en mode interactif, assurez-vous qu'HCL Digital Experience est en cours d'exécution. Le client du script de portail se trouve dans le répertoire d'installation d'HCL Portal :
Connectez-vous à l'aide de l'ID utilisateur d'administration et appelez le client du script de portail à l'aide des commandes suivantes :
  • AIX®HP-UXLinuxSolaris: ./wpscript.sh
  • IBM® i: wpscript.sh
  • Windows : wpscript.bat
  • z/OS® : ./wpscript.sh
Les procédures suivantes fournissent des exemples :

Avant de lancer une session en mode interactif, assurez-vous qu'HCL Portal est en cours d'exécution. Vous pouvez appeler le client de script de portail à l'aide de la commande wpscript.sh à partir du répertoire wp_profile_root/PortalServer/bin. Vous devez vous connecter à l'aide de l'ID utilisateur d'administration. Les procédures suivantes fournissent des exemples :

  1. Si la sécurité WebSphere® Application Server est activée, définissez des ID et mot de passe utilisateur pendant la connexion comme présenté dans l'exemple suivant :
    • AIX®HP-UXLinuxSolaris: ./wpscript.sh -port port_number -user user_id -password password
    • IBM® i: wpscript.sh -port port_number -user user_id -password password
    • Windows : wpscript.bat -port port_number -user user_id -password password
    • z/OS® : ./wpscript.sh -port port_number -user user_id -password password

    Les paramètres les plus courants sont expliqués brièvement dans la table suivante.

    Tableau 1. Description des paramètres de base utilisés avec la tâche wpscript.bat|sh
    Paramètre Description
    -lang
    Indique le langage du fichier script, de la commande ou d'un interpréteur de commandes interactif. Entrez l'une des valeurs suivantes pour le paramètre -lang :
    • jacl
    • jython

    Ce paramètre est facultatif et ne possède pas de valeur par défaut. Cette option remplace les déterminations de langage basées sur les noms de fichiers script, les noms de fichiers script de profil ou la propriété com.ibm.ws.scripting.defaultLang.

    Important : Une erreur se produit lorsque vous n'indiquez pas le langage de script sur la ligne de commande ou en tant que paramètre et que l'outil wsadmin ne peut pas déterminer le langage de script. Si vous ne spécifiez pas le langage de script en tant que valeur pour -lang, l'outil wsadmin détermine le langage de script comme suit :
    • Si vous spécifiez l'argument -f script_file_name, l'outil wsadmin détermine le langage à partir du nom du fichier script cible.
    • Si vous indiquez l'argument -profile profile_script_name, l'outil wsadmin détermine le langage à partir du nom du script de profil.
    -conntype
    Type de connexion devant être établi entre les opérations de scriptage. Les types de connexions valables sont :
    • SOAP
    • RMI
    • AUCUN

    La valeur par défaut est SOAP. Ce paramètre est facultatif. Utilisez l'option -conntype NONE pour travailler en mode local. Le résultat est que le client de script n'est pas connecté à un serveur en cours de fonctionnement. Si le type de connexion NONE est sélectionné, les beans de script sont inactifs et ne peuvent pas être utilisés pour l'administration, à l'exception de la commande help.

    -port Numéro de port de connexion. Ce paramètre est facultatif.
    Le numéro de port dépend des valeurs choisies lors de l'installation. Vous pouvez vérifier la valeur définie pour la propriété WasSoapPort dans le fichier wkplc.properties situé dans le répertoire approprié ci-dessous :
    Si vous exécutez wpscript sur un serveur appartenant à une cellule gérée par un gestionnaire de déploiement, la valeur port_number peut varier en fonction des ports utilisés sur le système lorsque le gestionnaire de déploiement est créé. Pour vérifier la valeur, vérifiez le paramétrage de SOAP_CONNECTOR_ADDRESS dans le fichier serverindex.xml qui se trouve dans le répertoire approprié ci-après :
    • AIX®HP-UXLinuxSolaris: dmgr_profile_root/config/cells/cell_name/nodes/node_name
    • IBM® i: dmgr_profile_root/config/cells/cell_name/nodes/node_name
    • Windows : dmgr_profile_root\config\cells\cell_name\nodes\node_name

    Pour z/OS® : Nom du port de connexion. Il s'agit du port SOAP du serveur de portail. Ce paramètre est facultatif. Pour déterminer le port SOAP, ouvrez la console WebSphere® Integrated Solutions Console, accédez à yourPortalServerName > Nœuds finaux > SOAP_CONNECTOR_ADDRESS. Par exemple, si vous exécutez wpscript sur un serveur appartenant à une cellule gérée par un gestionnaire de déploiement, il se peut que la valeur du port SOAP soit 10033.

    -user

    L'ID utilisateur sous lequel vous établissez la connexion. Ce paramètre peut être obligatoire, suivant votre configuration de sécurité.

    -password

    Mot de passe pour l'ID utilisateur sous lequel vous établissez la connexion.

  2. Ouvrez une session du portail à l'aide d'une des commandes de script suivantes :

    Jython : Portal.login("user_ID", "password")

    JACL : $Portal login user_ID password

  3. Emettez les commandes de script de portail comme indiqué.
  4. Une fois que vous avez effectué toutes les tâches via l'interface de script du portail, fermez et quittez le processeur de script. Toutes les modifications que vous avez validées sont appliquées à la configuration de portail.

Mode script

Utilisez le mode script pour appliquer des modifications prédéfinies à la configuration d'un portail.

L'outil wpscript exécute un script Jython ou JACL qui contient les opérations administratives. Le client de script hérite du processeur de script de wsadmin, si bien qu'un administrateur peut exploiter le langage de script Jython ou JACL afin d'écrire des scripts d'administration réutilisables et extensibles. Ce mode est généralement retenu si des tâches administratives reproductibles sont crées : Ce mode est généralement retenu si des tâches administratives reproductibles sont créées. Par exemple, l'administrateur peut écrire un script produisant une sous-arborescence de page complète et ajouter des mises en pages et des portlets individuels sur chaque page.

Les utilisateurs disposant de droits d'accès leur permettant de lancer des requêtes d'interface de configuration XML peuvent modifier les configurations de toutes les ressources. L'interface de script du portail est globalement cohérente par rapport au modèle d'administration révélé par l'interface utilisateur du portail.

Avant d'utiliser le mode de script, assurez-vous qu'HCL Portal est en cours de fonctionnement et qu'un fichier de script de portail est disponible. Vous devez vous connecter à l'aide de l'ID utilisateur d'administration WebSphere. Utilisez la procédure suivante :

  1. Mettez à jour le fichier de script avec les accréditations qui conviennent, si nécessaire.
  2. Utilisez l'une des commandes suivantes pour lancer l'outil de traitement de script :

    Jython : wpscript.sh -port port_number -f script_file_name.py

    JACL : wpscript.sh -port port_number -f script_file_name.jacl

    Ceci a pour effet de lancer l'environnement de script interactif du processeur de script JACL ou Jython du portail.
  3. Dans le répertoire wp_profile_root/PortalServer/bin, utilisez la commande suivante pour lancer l'outil processeur de script :

    Jython : wpscript.sh -port port_number -f script_file_name.py

    JACL : wpscript.sh -port port_number -f script_file_name.jacl

    Cette commande initialise l'environnement de script du processeur de script de portail. Vous devez vous connecter à la console z/OS® avec l'ID administrateur WebSphere® Application Server.
  4. Vérifier la sortie du processeur de script afin de vous assurer qu'aucune erreur ne s'est produite durant l'exécution du script.

Toutes les modifications validées via le script sont appliquées immédiatement à la configuration de portail.

Le script suivant crée une page intitulée A page. Cette dernière se situe sous le libellé Home. La page contient deux portlets, disposés horizontalement.
Exemple de script Jython du portail
L'exemple suivant est un fichier script Jython appelé testme.py :
# Scripting bean example: create a simple page (multi-column Layout)
#

# Procedure: create a multi-column page under the page that is currently
# selected, and place the given portlets into the layout.
#
# parameters:
#   name The name of the page
#   portlet_names A list of portlet names.
# returns:
#   oid The id of the page that has been created
def create_multi_col_page(name, portlet_names):
    thePage = Content.create("page", name, "html")
    Content.select(thePage)
    lyt0 = Layout.create("container", "horizontal", "select")
    for pn in portlet_names:
        pid = Portlet.find("portlet", "cn", pn)
        Layout.create("control", pid)

    return thePage


# main code starts here

# set User ID/ pwd for portal Login command
# Hint: User ID and passwords should normally not be placed inside a
# configuration script; better use property files or command line arguments
user = "user_ID"
pwd = "password"
Portal.login(user, pwd)

# determine and select the parent of the page to be created.
# In this example, This is the "Home" label.
Content.select(Content.find("all", "uniquename", "ibm.portal.Home")
# Invoke the page creation procedure. The label of the page is "My test page",
# portlets to be added are the reminder portlet and the welcome portlet.
newbie = create_multi_col_page("A Page", ["Reminder", "Welcome_to_WebSphere_Portal"])

print "ok, we are done."
Exemple de script JACL du portail
L'exemple suivant est un fichier script JACL appelé testme.jacl :
# Scripting bean example: create a simple page (multi-column Layout)           
#                                                                              

# Procedure: create a multi-column page under the page that is currently       
# selected, and place the given portlets into the layout.                      
#                                                                              
# parameters:                                                                  
#   name              The name of the page                                     
#   portlet_names     A list of portlet names.                                 
# returns:
#   oid               The id of the page that has been created                 
proc create_multi_col_page { name portlet_names } {                            
  global Content Layout Portlet                                                
    set thePage [$Content create page $name html]                              
    $Content select $thePage                                                   
    set lyt0 [$Layout create container horizontal select]                      
    foreach pn $portlet_names {                                                
      set pid [$Portlet find portlet cn $pn]                                   
      $Layout create control $pid                                              
    }                                                                          
  return $thePage                                                              
}                                                                              
                                                                               
# main code starts here                                                        
                                                                               
# set User ID/ pwd for portal Login command                                    
# Hint: User ID and passwords should normally not be placed inside a           
# configuration script; better use property files or command line arguments    
set user user_ID                                                           
set pwd  password                                                              
$Portal login $user $pwd                                                       
                                                                               
# determine and select the parent of the page to be created.                   
# In this example, This is the "Home" label.                              
$Content select [$Content find all uniquename "ibm.portal.Home"]                 
                                                                               
# Invoke the page creation procedure. The label of the page is "My test page", 
# portlets to be added are the reminder portlet, and the welcome portlet.   
set newbie [create_multi_col_page "A Page" { "Reminder" "Welcome_to_WebSphere_Portal" } ]
                                                                               
puts "ok, we are done."       
Les scripts peuvent recevoir des informations paramétriques de sources externes, en recourant à l'une des fonctions suivantes :
  • Profiles.
  • Arguments de ligne de commande.
Les scripts peuvent accéder aux arguments de ligne de commande à l'aide des variables suivantes :
argc
Utilisez cette variable dans les scripts JACL pour spécifier le nombre d'arguments de ligne de commande.
argv
Utilisez cette variable dans les scripts Jython et JACL pour spécifier les arguments de ligne de commande.
Jython : Dans l'exemple de script précédent, testme.py, supprimez les instructions suivantes :
user = "portaladmin"
pwd = "adminpwd"
et remplacez-les par celles-ci :
if len(sys.argv) != 2:
   print "invocation syntax: wpscript testme.py <user> <pwd>"
   sys.exit(1)

user = argv[0]
pwd = argv[1]
JACL : In the preceding example script, testme.jacl, delete the following statements:

set user portaladmin                                                           
set pwd  adminpwd 
et remplacez-les par celles-ci :
if { $argc != 2 }  {
    puts "invocation syntax: wpscript testme.jacl <user> <pwd>"
	  exit
  }
  set user [lindex $argv 0]
  set pwd [lindex $argv 1]

Sensibles en termes de sécurité, le nom d'utilisateur et le mot de passe sont supprimés du script. Le code modifié s'attend à ce que l'ID utilisateur et le mot de passe soient définis en tant qu'arguments de ligne de commande, comme par exemple :

Jython : wpscript.sh -port port_number -f testme.py user_IDpassword JACL :wpscript.sh -port port_number -f testme.jacl user_ID password

Exécution de commandes de script dans un profil

Un profil correspond à un script s'exécutant avant le script principal ou avant le passage en mode interactif. Les profils peuvent servir à paramétrer des comportements propres à l'environnement ou des données propres à l'utilisateur. Les profils sont définis lors de l'invocation de wpscript, à l'aide du paramètre -profile. Par exemple, la commande login peut être placée dans un profil.

Exemple de script de profil Jython
L'exemple suivant est un script de profil Jython appelé mylogin.py :
# scripting profile
# contains log-in procedure on portal with disabled security
if len(sys.argv) != 2:
   print "invocation syntax: wpscript -f testme.jacl -profile
mylogin.py user_ID password"
   sys.exit(1)

user = argv[0]
pwd = argv[1]
Portal.login(user, pwd)
Supprimez ou mettez en commentaire les instructions suivantes dans le fichier de script testme.py :
if len(sys.argv) != 2:
   print "invocation syntax: wpscript testme.py user_ID password"
   sys.exit(1)

user = argv[0]
pwd = argv[1]
Portal.login(user, pwd)

Pour appeler mylogin.py, entrez la commande suivante : wpscript.sh -port port_number -profile mylogin.py -f testme.py user_ID password

Exemple de script de profil JACL
L'exemple suivant est un script de profil JACL appelé mylogin.jacl :
# scripting profile 
  # contains log-in procedure on portal with disabled security
  if { $argc != 2 }  {
    puts "invocation syntax: wpscript -f testme.jacl -profile mylogin.jacl user_ID password"
	  exit
  }
  set user [lindex $argv 0]
  set pwd [lindex $argv 1]
  $Portal login $user $pwd
Remove or comment out the following statements in the testme.jacl script file:
  if { $argc != 2 }  {
    puts "invocation syntax: wpscript testme.jacl user_ID password"
    exit
  }
  set user [lindex $argv 0]
  set pwd [lindex $argv 1]
  $Portal login $user $pwd 

To invoke mylogin.jacl, enter the following command: wpscript.sh -port port_number -profile mylogin.jacl -f testme.jacl user_ID password

L'avantage de cette modification réside dans le fait que la procédure d'ouverture de session propre à l'environnement est supprimée du script d'administration. Pour les systèmes sur lesquels la sécurité WebSphere® Application Server est activée, la procédure d'ouverture de session est la suivante :
Scripts Jython
  # scripting profile 
  # contains log-in procedure on portal with enabled security
  Portal.login()
Scripts JACL
  # scripting profile 
  # contains log-in procedure on portal with enabled security
  $Portal login