Prise en charge de l'interface de scriptage du portail et des projets

Avec l'interface de scriptage du portail, vous pouvez créer des scripts Jacl ou Jython afin d'automatiser la gestion des projets.

En utilisant le bean Project avec l'interface de scriptage du portail, vous pouvez effectuer les actions suivantes sur les projets :
  • répertorier tous les projets disponibles,
  • créer et supprimer des projets,
  • définir un projet actif,
  • extraire des informations sur un projet spécifique,
  • extraire des attributs propres à l'environnement local pour des projets,
  • Soumission d'un projet pour révision
  • soustraire un projet à la révision,
  • Validation des projets
  • refuser un projet,
  • Approuver tous les documents d'un projet, c'est-à-dire tous les éléments Web Content Manager qui font partie d'un flux de travaux,
  • refuser tous les documents d'un projet, c'est-à-dire tous les éléments Web Content Manager qui font partie d'un flux de travaux,
  • Publication des projets

Pour exécuter des commandes avec le bean Project, vous pouvez utiliser le bean Portal afin de définir un projet comme contexte pour les commandes suivantes.

Liste des projets

Pour extraire la liste des projets, utilisez la méthode listall. Cette méthode renvoie les noms des projets.
  • Syntaxe Jacl : $Project listall
  • Syntaxe Jython : Project.listall()
Exemple Jacl :
wsadmin>$Project listall
'"TestProject1" "TestProject2"'
Exemple Jython :
wsadmin>Project.listall()
'"TestProject1" "TestProject2"'

Créer des projets

Pour créer un projet, utilisez la méthode create.
  • Syntaxe Jacl : $Project create "project_name"
  • Syntaxe Jython : Project.create("project_name")
Exemple Jacl :
wsadmin>$Project create "TestProject1"
TestProject1
Exemple Jython :
Project.create("TestProject1")
'TestProject1'
Remarque : Si vous créez un projet à l'aide de l'interface de scriptage du portail, ce projet n'est pas répertorié avec les projets récents dans le menu des projets.

Suppression de projets

Pour supprimer un projet, utilisez la méthode delete.
  • Syntaxe Jacl : $Project delete "project_name"
  • Syntaxe Jython : Project.delete("project_name")
Exemple Jacl :
wsadmin>$Project delete "TestProject1"
Exemple Jython :
wsadmin>Project.delete("TestProject1")

Définition du projet actif

Pour les commandes que vous souhaitez exécuter dans un projet, utilisez la méthode setproject du bean Portal afin de spécifier le projet. Lorsque vous appelez la méthode setproject, vous identifiez le projet actif par son nom. Si vous appelez la méthode setproject sans indiquer de nom de projet, le projet actif est effacé. Lorsque vous définissez le projet au cours d'une session, le projet est actif immédiatement.

Pour définir le projet actif, vous devez établir une session utilisateur avec le portail à l'aide de la commande login du bean Portal.
  • Syntaxe Jacl : $Project setproject "project_name"
  • Syntaxe Jython : Portal.setproject("project_name")
Exemple Jacl :
wsadmin>$Portal setproject "TestProject1"
Exemple Jython :
wsadmin>Portal.setproject("TestProject1")

Extraction des détails d'un projet

Procédez à l'extraction des détails d'un projet avec la méthode details. Cette méthode renvoie les informations suivantes sur le projet :
  • Identificateur unique universel (UUID, Universally Unique Identifier)
  • Etat
  • Nom
  • Titre
  • Approbateurs
  • Approbations en attente
  • Mode d'approbation, indiquant si l'approbation doit être effectuée par tous les valideurs ou par un seul valideur.
  • Historique, à savoir les actions précédemment effectuées sur le projet.
Syntaxe :
  • Syntaxe Jacl : $Project details "project_name"
  • Syntaxe Jython : Project.details("project_name")
Exemple Jacl :
wsadmin>$Project details "TestProject2"
uuid                 : 47c7f3bd-b004-4b94-a6b5-397272d69eb7
state                : ACTIVE
name                 : TestProject2
title                : TestProject2
approvers            : wpsadmins
outstanding approvals: wpsadmins
approval mode        : all
history              : 9/24/13 1:02 PM: Document created by wpsadmin
                       9/24/13 1:06 PM: Submitted for review by wpsadmin
                       9/24/13 1:06 PM: Project state changed to Review
                       9/24/13 6:34 PM: Rejected by wpsadmin
                       9/24/13 6:34 PM: Project state changed to Rejected
                       9/24/13 6:34 PM: Project state changed to Active
                       9/24/13 6:35 PM: Submitted for review by wpsadmin
                       9/24/13 6:35 PM: Project state changed to Review
                       9/24/13 6:35 PM: Rejected by wpsadmin
                       9/24/13 6:35 PM: Rework project with more detail.
                       9/24/13 6:35 PM: Project state changed to Rejected
                       9/24/13 6:35 PM: Project state changed to Active
items:
  testpagep2 (draft / new / publish pending)
Exemple Jython :
wsadmin>print Project.details("TestProject2")
uuid                 : 47c7f3bd-b004-4b94-a6b5-397272d69eb7
state                : ACTIVE
name                 : TestProject2
title                : TestProject2
approvers            : wpsadmins
outstanding approvals: wpsadmins
approval mode        : all
history              : 9/24/13 1:02 PM: Document created by wpsadmin
                       9/24/13 1:06 PM: Submitted for review by wpsadmin
                       9/24/13 1:06 PM: Project state changed to Review
                       9/24/13 6:34 PM: Rejected by wpsadmin
                       9/24/13 6:34 PM: Project state changed to Rejected
                       9/24/13 6:34 PM: Project state changed to Active
                       9/24/13 6:35 PM: Submitted for review by wpsadmin
                       9/24/13 6:35 PM: Project state changed to Review
                       9/24/13 6:35 PM: Rejected by wpsadmin
                       9/24/13 6:35 PM: Rework project with more detail.
                       9/24/13 6:35 PM: Project state changed to Rejected
                       9/24/13 6:35 PM: Project state changed to Active
items:
  testpagep2 (draft / new / publish pending)

Extraction des attributs traduits

Si des attributs de projet sont traduits, comme le titre ou la description, vous pouvez les extraire avec la méthode nlsget. Spécifiez l'attribut avec l'un des paramètres suivants :
  • Titre : title ou t
  • Description : description, descr ou d
Syntaxe :
  • Syntaxe Jacl : $Project nlsget "project_name" attribute_parameter [locale]
  • Syntaxe Jython : Project.nlsget("project_name","attribute_parameter"[,"locale"])
Exemple Jacl :
wsadmin>$Project nlsget "TestProject1" descr en
This is the description for TestProject1.
Exemple Jython :
wsadmin>print Project.nlsget("TestProject1", "descr", "en")
This is the description for TestProject1.
Si vous ne spécifiez pas de valeur pour le paramètre locale, l'environnement local courant est utilisé.

Soumission d'un projet pour révision

Pour soumettre un projet à réviser, utilisez la méthode submitforreview. Le projet doit être à l'état actif, en attente ou supprimé. Lorsque vous soumettez un projet pour révision, ce dernier passe à l'état révision.
  • Syntaxe Jacl : $Project submitforreview "project_name"
  • Syntaxe Jython : Project.submitforreview("project_name")
Exemple Jacl :
wsadmin>$Project submitforreview TestProject

wsadmin>$Project details TestProject
uuid                 : 035c4488-973f-44a4-aa8e-92b9f36e2412
state                : REVIEW
name                 : TestProject
title                : TestProject
approvers            : wpsadmins
outstanding approvals: wpsadmins
approval mode        : single
history              : 10/16/13 6:23 PM: Document created by wpsadmin
                       10/16/13 6:26 PM: Submitted for review by wpsadmin
                       10/16/13 6:26 PM: Project state changed to Review
items:
  testpage (draft / new / publish pending)
Exemple Jython :
wsadmin>Project.submitforreview("TestProject")

wsadmin>print Project.details("TestProject")
uuid                 : 035c4488-973f-44a4-aa8e-92b9f36e2412
state                : REVIEW
name                 : TestProject
title                : TestProject
approvers            : wpsadmins
outstanding approvals: wpsadmins
approval mode        : single
history              : 10/16/13 6:23 PM: Document created by wpsadmin
                       10/16/13 6:26 PM: Submitted for review by wpsadmin
                       10/16/13 6:26 PM: Project state changed to Review
items:
  testpage (draft / new / publish pending)

Retrait d'un projet d'une révision

Pour retirer un projet d'une révision, utilisez la méthode withdrawfromreview. Le projet doit être à l'état révision. Lorsque vous retirez un projet de la révision il passe à l'état actif.
  • Syntaxe Jacl : $Project withdrawfromreview "project_name"
  • Syntaxe Jython : Project.withdrawfromreview("project_name")
Exemple Jacl :
wsadmin>$Project withdrawfromreview TestProject

wsadmin>$Project details TestProject
uuid                 : 035c4488-973f-44a4-aa8e-92b9f36e2412
state                : ACTIVE
name                 : TestProject
title                : TestProject
approvers            : wpsadmins
outstanding approvals: wpsadmins
approval mode        : single
history              : 10/16/13 6:23 PM: Document created by wpsadmin
                       10/16/13 6:26 PM: Submitted for review by wpsadmin
                       10/16/13 6:26 PM: Project state changed to Review
                       10/16/13 6:26 PM: Rejected by wpsadmin
                       10/16/13 6:26 PM: needs rework
                       10/16/13 6:26 PM: Project state changed to Rejected
                       10/16/13 6:26 PM: Project state changed to Active
                       10/16/13 6:27 PM: Submitted for review by wpsadmin
                       10/16/13 6:27 PM: Project state changed to Review
                       10/16/13 6:28 PM: Withdrawn from review by wpsadmin
                       10/16/13 6:28 PM: Project state changed to Active
items:
  testpage (draft / new / publish pending)
Exemple Jython :
wsadmin>Project.withdrawfromreview("TestProject")

wsadmin>print Project.details("TestProject")
uuid                 : 035c4488-973f-44a4-aa8e-92b9f36e2412
state                : ACTIVE
name                 : TestProject
title                : TestProject
approvers            : wpsadmins
outstanding approvals: wpsadmins
approval mode        : single
history              : 10/16/13 6:23 PM: Document created by wpsadmin
                       10/16/13 6:26 PM: Submitted for review by wpsadmin
                       10/16/13 6:26 PM: Project state changed to Review
                       10/16/13 6:26 PM: Rejected by wpsadmin
                       10/16/13 6:26 PM: needs rework
                       10/16/13 6:26 PM: Project state changed to Rejected
                       10/16/13 6:26 PM: Project state changed to Active
                       10/16/13 6:27 PM: Submitted for review by wpsadmin
                       10/16/13 6:27 PM: Project state changed to Review
                       10/16/13 6:28 PM: Withdrawn from review by wpsadmin
                       10/16/13 6:28 PM: Project state changed to Active
items:
  testpage (draft / new / publish pending)

Validation des projets

Pour approuver les brouillons figurant dans un projet, utilisez la méthode approve. En supplément au projet vous pouvez ajouter un commentaire comme second paramètre. Si la configuration du projet requiert un commentaire, le commentaire est obligatoire. Sinon, le commentaire est facultatif.

La commande approuve uniquement le projet. Les brouillons du projet doivent être approuvés séparément, par exemple, à l'aide de la méthode approvedocuments. Pour qu'un projet soit approuvé, tous ses documents doivent être à l'état publié, en attente ou supprimé.
  • Syntaxe Jacl :
    $Project approve "project_name"
    $Project approve "project_name" "comment"
  • Syntaxe Jython :
    Project.approve("project_name")
    Project.approve("project_name", "comment")
Exemple Jacl :
wsadmin>$Project approve TestProject "ok"

wsadmin>$Project details TestProject
uuid                 : 035c4488-973f-44a4-aa8e-92b9f36e2412
state                : PENDING
name                 : TestProject
title                : TestProject
approvers            : wpsadmins
outstanding approvals: 
approval mode        : single
history              : 10/16/13 6:23 PM: Document created by wpsadmin
                       10/16/13 6:26 PM: Submitted for review by wpsadmin
                       10/16/13 6:26 PM: Project state changed to Review
                       10/16/13 6:26 PM: Rejected by wpsadmin
                       10/16/13 6:26 PM: needs rework
                       10/16/13 6:26 PM: Project state changed to Rejected
                       10/16/13 6:26 PM: Project state changed to Active
                       10/16/13 6:27 PM: Submitted for review by wpsadmin
                       10/16/13 6:27 PM: Project state changed to Review
                       10/16/13 6:28 PM: Withdrawn from review by wpsadmin
                       10/16/13 6:28 PM: Project state changed to Active
                       10/16/13 6:28 PM: Submitted for review by wpsadmin
                       10/16/13 6:28 PM: Project state changed to Review
                       10/16/13 6:28 PM: Approved by wpsadmin
                       10/16/13 6:28 PM: ok
                       10/16/13 6:28 PM: Project state changed to Pending
items:
  testpage (draft / new / publish pending)
Exemple Jython :
wsadmin>Project.approve("TestProject1")
wsadmin>print Project.details("TestProject1")
uuid                 : 035c4488-973f-44a4-aa8e-92b9f36e2412
state                : PENDING
name                 : TestProject
title                : TestProject
approvers            : wpsadmins
outstanding approvals: 
approval mode        : single
history              : 10/16/13 6:23 PM: Document created by wpsadmin
                       10/16/13 6:26 PM: Submitted for review by wpsadmin
                       10/16/13 6:26 PM: Project state changed to Review
                       10/16/13 6:26 PM: Rejected by wpsadmin
                       10/16/13 6:26 PM: needs rework
                       10/16/13 6:26 PM: Project state changed to Rejected
                       10/16/13 6:26 PM: Project state changed to Active
                       10/16/13 6:27 PM: Submitted for review by wpsadmin
                       10/16/13 6:27 PM: Project state changed to Review
                       10/16/13 6:28 PM: Withdrawn from review by wpsadmin
                       10/16/13 6:28 PM: Project state changed to Active
                       10/16/13 6:28 PM: Submitted for review by wpsadmin
                       10/16/13 6:28 PM: Project state changed to Review
                       10/16/13 6:28 PM: Approved by wpsadmin
                       10/16/13 6:28 PM: ok
                       10/16/13 6:28 PM: Project state changed to Pending
items:
  testpage (draft / new / publish pending)

Refus de projets

Pour refuser les brouillons d'un projet, utilisez la méthode decline. En supplément au projet vous pouvez ajouter un commentaire comme second paramètre. Si la configuration du projet requiert un commentaire, le commentaire est obligatoire. Sinon, le commentaire est facultatif. La commande refuse uniquement le projet. Les brouillons du projet conservent leur état courant. Pour pouvoir être refusé, le projet doit être à l'état révision.
  • Syntaxe Jacl :
    $Project decline "project_name"
    $Project decline "project_name" "comment"
  • Syntaxe Jython :
    Project.decline("project_name")
    Project.decline("project_name", "comment")
Exemple Jacl :
wsadmin>$Project decline TestProject "needs rework"

wsadmin>$Project details TestProject
uuid                 : 035c4488-973f-44a4-aa8e-92b9f36e2412
state                : ACTIVE
name                 : TestProject
title                : TestProject
approvers            : wpsadmins
outstanding approvals: wpsadmins
approval mode        : single
history              : 10/16/13 6:23 PM: Document created by wpsadmin
                       10/16/13 6:26 PM: Submitted for review by wpsadmin
                       10/16/13 6:26 PM: Project state changed to Review
                       10/16/13 6:26 PM: Rejected by wpsadmin
                       10/16/13 6:26 PM: needs rework
                       10/16/13 6:26 PM: Project state changed to Rejected
                       10/16/13 6:26 PM: Project state changed to Active
items:
  testpage (draft / new / publish pending)
Exemple Jython :
wsadmin>Project.decline("TestProject1")
wsadmin>print Project.details("TestProject1")
uuid                 : 035c4488-973f-44a4-aa8e-92b9f36e2412
state                : ACTIVE
name                 : TestProject
title                : TestProject
approvers            : wpsadmins
outstanding approvals: wpsadmins
approval mode        : single
history              : 10/16/13 6:23 PM: Document created by wpsadmin
                       10/16/13 6:26 PM: Submitted for review by wpsadmin
                       10/16/13 6:26 PM: Project state changed to Review
                       10/16/13 6:26 PM: Rejected by wpsadmin
                       10/16/13 6:26 PM: needs rework
                       10/16/13 6:26 PM: Project state changed to Rejected
                       10/16/13 6:26 PM: Project state changed to Active
items:
  testpage (draft / new / publish pending)

Approbation de tous les documents d'un projet

Pour approuver tous les documents d'un projet, utilisez la méthode approvedocuments. Cette méthode perme d'approuver tous les éléments Web Content Manager faisant partie d'un flux de travaux.
  • Syntaxe Jacl : $Project approvedocuments project_name
  • Syntaxe Jython : Project.approvedocuments("project_name")
Exemple Jacl :
wsadmin>$Project approvedocuments TestProject

wsadmin>$Project details TestProject
uuid                 : 5dffe3e4-59d1-4abf-8697-3e62a29a0cbf
state                : PENDING
name                 : TestProject
title                : TestProject
approvers            : 
outstanding approvals: 
approval mode        : single
history              : 10/16/13 6:14 PM: Document created by wpsadmin
                       10/16/13 6:16 PM: Project state changed to Pending
items:
  testpage (draft / new / publish pending)
Exemple Jython :
wsadmin>Project.approvedocuments("TestProject")

wsadmin>Project.details("TestProject")
uuid                 : 5dffe3e4-59d1-4abf-8697-3e62a29a0cbf
state                : PENDING
name                 : TestProject
title                : TestProject
approvers            : 
outstanding approvals: 
approval mode        : single
history              : 10/16/13 6:14 PM: Document created by wpsadmin
                       10/16/13 6:16 PM: Project state changed to Pending
items:
  testpage (draft / new / publish pending)

Refus de tous les documents d'un projet

Pour refuser tous les documents d'un projet, utilisez la méthode declinedocuments. Cette méthode refuse tous les éléments Web Content Manager faisant partie d'un flux de travaux.
  • Syntaxe Jacl : $Project declinedocuments project_name
  • Syntaxe Jython : Project.declinedocuments("project_name")
Exemple Jacl :
wsadmin>$Project declinedocuments TestProject
wsadmin>$Project details TestProject
uuid                 : 5dffe3e4-59d1-4abf-8697-3e62a29a0cbf
state                : ACTIVE
name                 : TestProject
title                : TestProject
approvers            : 
outstanding approvals: 
approval mode        : single
history              : 10/16/13 6:14 PM: Document created by wpsadmin
                       10/16/13 6:16 PM: Project state changed to Pending
                       10/16/13 6:18 PM: Project state changed to Active
items:
  testpage (draft / new)
Exemple Jython :
wsadmin>$Project.declinedocuments("TestProject")
wsadmin>$Project.details("TestProject")
uuid                 : 5dffe3e4-59d1-4abf-8697-3e62a29a0cbf
state                : ACTIVE
name                 : TestProject
title                : TestProject
approvers            : 
outstanding approvals: 
approval mode        : single
history              : 10/16/13 6:14 PM: Document created by wpsadmin
                       10/16/13 6:16 PM: Project state changed to Pending
                       10/16/13 6:18 PM: Project state changed to Active
items:
  testpage (draft / new)

Publication des projets

Pour publier un projet, utilisez la méthode publish. Pour qu'un projet puisse être publié, tous ses éléments doivent être approuvés et le projet doit être à l'état Publication en attente.
  • Syntaxe Jacl : $Project publish "project_name"
  • Syntaxe Jython : Project.publish("project_name")
Exemple Jacl :
wsadmin>$Project publish TestProject

wsadmin>$Project details TestProject
uuid                 : 035c4488-973f-44a4-aa8e-92b9f36e2412
state                : PUBLISHED
name                 : TestProject
title                : TestProject
approvers            : wpsadmins
outstanding approvals: 
approval mode        : single
history              : 10/16/13 6:23 PM: Document created by wpsadmin
                       10/16/13 6:26 PM: Submitted for review by wpsadmin
                       10/16/13 6:26 PM: Project state changed to Review
                       10/16/13 6:26 PM: Rejected by wpsadmin
                       10/16/13 6:26 PM: needs rework
                       10/16/13 6:26 PM: Project state changed to Rejected
                       10/16/13 6:26 PM: Project state changed to Active
                       10/16/13 6:27 PM: Submitted for review by wpsadmin
                       10/16/13 6:27 PM: Project state changed to Review
                       10/16/13 6:28 PM: Withdrawn from review by wpsadmin
                       10/16/13 6:28 PM: Project state changed to Active
                       10/16/13 6:28 PM: Submitted for review by wpsadmin
                       10/16/13 6:28 PM: Project state changed to Review
                       10/16/13 6:28 PM: Approved by wpsadmin
                       10/16/13 6:28 PM: ok
                       10/16/13 6:28 PM: Project state changed to Pending
                       10/16/13 6:29 PM: Project state changed to Publishing
                       10/16/13 6:29 PM: Project state changed to Published
items:
  testpage (published)
Exemple Jython :
wsadmin>Project.publish("TestProject1")
wsadmin>print Project.details("TestProject1")
uuid                 : 035c4488-973f-44a4-aa8e-92b9f36e2412
state                : PUBLISHED
name                 : TestProject
title                : TestProject
approvers            : wpsadmins
outstanding approvals: 
approval mode        : single
history              : 10/16/13 6:23 PM: Document created by wpsadmin
                       10/16/13 6:26 PM: Submitted for review by wpsadmin
                       10/16/13 6:26 PM: Project state changed to Review
                       10/16/13 6:26 PM: Rejected by wpsadmin
                       10/16/13 6:26 PM: needs rework
                       10/16/13 6:26 PM: Project state changed to Rejected
                       10/16/13 6:26 PM: Project state changed to Active
                       10/16/13 6:27 PM: Submitted for review by wpsadmin
                       10/16/13 6:27 PM: Project state changed to Review
                       10/16/13 6:28 PM: Withdrawn from review by wpsadmin
                       10/16/13 6:28 PM: Project state changed to Active
                       10/16/13 6:28 PM: Submitted for review by wpsadmin
                       10/16/13 6:28 PM: Project state changed to Review
                       10/16/13 6:28 PM: Approved by wpsadmin
                       10/16/13 6:28 PM: ok
                       10/16/13 6:28 PM: Project state changed to Pending
                       10/16/13 6:29 PM: Project state changed to Publishing
                       10/16/13 6:29 PM: Project state changed to Published
items:
  testpage (published)

Exemples

Ces exemples illustrent une séquence de commandes habituelle permettant de créer une page dans un projet spécifique. Chaque exemple de script effectue les opérations suivantes :
  • il établit une session utilisateur,
  • il crée un projet (myproject) ;
  • il extrait les détails du projet myproject ;
  • il spécifie comme projet actif le projet myproject ;
  • il localise la page Home dans le portail ;
  • il crée la page testpage1 en tant que page enfant de la page Home cette opération est effectuée dans le contexte du projet actif,
  • il supprime le projet actif,
  • il met fin à la session utilisateur.
Exemple Jacl :
$Portal login
set myproject [$Project create "My new project"
$Project details $myproject
$Portal setproject $myproject
$Content find any un ibm.portal.Home select
$Content create page testpage1 html shared public
$Portal setproject
$Portal logout
Exemple Jython :
Portal.login()
myproject = Project.create("My new project")
Project.details(myproject)
Portal.setproject(myproject)
Content.find("any", "un", "ibm.portal.Home", "select")
Content.create("page","testpage1","html", "shared", "public")
Portal.setproject()
Portal.logout()