Skip to content

Automatisation dans Colodus avec Javascript : courte explication technique

18/09/2015

Tous les billets de la série « Automatisation Colodus avec JavaScript »

Imiter le comportement d’un exemplarisateur exemplaire

Dans un bookmarklet (favori contenant non pas une URL, mais du code JavaScript) pour Colodus, on va trouver ce genre de chose :


1. jQuery(%22input[id*='ppn']%22).val("187862575");
2. document.getElementById('boutonsearch').click();
3. document.getElementById('boutoncrexpl').click();
#
4. divparent=window.document.getElementById('E9xx');
5. divparent3XX=window.document.getElementById('E3xx');
6. div930=divparent.getElementsByClassName('E930_Div');
7. divid930=div930[0].getAttribute('id');
8. ajLt('record0','E915',null,null,null,null,null,null,null);
9. div915=divparent.getElementsByClassName('E915_Div');
10. divid915=div915[0].getAttribute('id');
11. jQuery(%22input[id*='E915_a']%22).val("2015-DROIT-540");
12. ajt('record0','E915_b',null,divid915,null,null,null,null,null);
13. jQuery(%22input[id*='E915_b']%22).val("0962091024");
14. ajt('record0','E930_c',null,divid930,null,null,null,null,null);
15. jQuery(%22input[id*='E930_c']%22).val("BU ROIT");
16. ajt('record0','E930_d',null,divid930,null,null,null,null,null);
17. jQuery(%22input[id*='E930_d']%22).val("CODES");
18. jQuery(%22input[id*='E930_a']%22).val("346 COD");
19. jQuery(%22select[id*='E930_j']%22).val("g");
20. jQuery('#boutonsave').click();

Ce code JavaScript émule (reproduit) le comportement en ligne d’un internaute qui agit sur la page.

En effet quand nous naviguons sur Internet, nous agissons sur les pages : écrire du texte dans un formulaire de recherche (la zone de saisie est une balise <input/>, et sa valeur, de vide, devient ce que nous y mettons), cliquer sur le bouton « Lancer la recherche », cliquer sur le 1er résultat, etc.

Toutes ces opérations successives peuvent être imitées par de nombreux informatiques (grâce au DOM, qui définit les objets présents dans la page et comment les désigner, les manipuler, les modifier). Ici, on va utiliser JavaScript, qu’on peut lancer depuis un faux favori Firefox.

Ce que fait le catalogueur

Pour que le code ci-dessus soit efficace, il faut s’imaginer d’abord sur la page d’accueil de Colodus, après authentification

colodus - accueil

A partir de là, le catalogueur va :

  1. copier-coller un PPN dans la zone PPN
  2. cliquer sur le bouton colodus - bouton Rechercher
  3. tomber sur une notice et vérifier qu’il s’agit bien de la bonne
  4. basculer dans l’onglet « Données d’exemplaires »
    Colodus - notice detaillee
  5. Cliquer sur « Créer Exemplaire », puis ajouter les sous-zones manquantes (si besoin) et les renseigner.
  6. Cliquer sur le bouton Colodus - bouton Enregistrer exemplaire pour enregistrer l’exemplaire

Ce que fait le script (spoiler : la même chose)

Toutes ces opérations, on les retrouve dans le code JavaScript ci-dessus :

  • ligne 1 : trouver la zone « PPN » et y mettre la valeur 187862575
  • ligne 2 : cliquer sur le bouton « Rechercher »
    le code HTML qui génère ce bouton est : <input value="Rechercher" class="ui-state-default ui-corner-all" id="boutonsearch" type="submit">. Si son identifiant est "boutonsearch", on le retrouve en JavaScript par la commande : getElementById("boutonsearch").
  • ligne 3 : cliquer sur le bouton « Créer Exemplaire »
  • lignes 4-19 : alimenter les zones d’exemplaires
    Le champs Unimarc sont en gras, leurs valeurs en rouge :

    • 915$a = n° d’inventaire
    • 915$b = code-barres
    • 930$c = BU
    • 930$d = localisation
    • 930$a = cote
    • 930$j = règle de PEB (valeur codée sur une lettre)
      Quand le champ ou le sous-champ n’est pas prévu par le formulaire initial, il faut d’abord imiter l’action « Ajouter un nouveau champ » ou « Ajouter un nouveau sous-champ », d’où toutes ces lignes
  • ligne 20 : cliquer sur le bouton Enregistrer

Vous voulez tester ?

  1. Sélectionnez le code ci-dessous (et pas ci-dessus) en cliquant 3 fois sur la ligne, puis déplacez-le par glisser-déposer dans votre barre de favoris
  2. allez sur Colodus et connectez-vous avec votre login de catalogueur
  3. cliquez sur le favori
  4. allez vérifier le PPN 187862575 pour voir le résultat
  5. pensez ensuite à supprimer l’exemplaire créé !

La seule différence entre les 2 codes, c’est que j’ai supprimé les sauts et numéros de ligne, et que j’ai encapsulé les consignes dans une fonction « function() » qui s’exécute tout à la fin.

javascript:(function(){jQuery(%22input[id*='ppn']%22).val("187862575");document.getElementById('boutonsearch').click();document.getElementById('boutoncrexpl').click();divparent=window.document.getElementById('E9xx');divparent3XX=window.document.getElementById('E3xx');div930=divparent.getElementsByClassName('E930_Div');divid930=div930[0].getAttribute('id');ajLt('record0','E915',null,null,null,null,null,null,null);div915=divparent.getElementsByClassName('E915_Div');divid915=div915[0].getAttribute('id');jQuery(%22input[id*='E915_a']%22).val("2015-DROIT-540");ajt('record0','E915_b',null,divid915,null,null,null,null,null);jQuery(%22input[id*='E915_b']%22).val("0962091024");ajt('record0','E930_c',null,divid930,null,null,null,null,null);jQuery(%22input[id*='E930_c']%22).val("BU DROIT");ajt('record0','E930_d',null,divid930,null,null,null,null,null);jQuery(%22input[id*='E930_d']%22).val("CODES");jQuery(%22input[id*='E930_a']%22).val("346 COD");jQuery(%22select[id*='E930_j']%22).val("g");jQuery('#boutonsave').click();})();

 

2 commentaires
  1. 22/09/2015 09:00

    Tu es un excellent pédagogue et rien n’est plus convaincant qu’un test en situation réelle. J’ai pu voir de mes yeux voir la simplicité et la rapidité de l’action. Exit l’argument « tsss, pour ce qu’on doit gagner comme temps en s’épargnant 2 clics, ça ne doit pas valoir le coup ».
    J’ai toujours des interrogations sur le rapport que produit Aleph et la récupération des PPN, mais j’ai bien compris qu’il faudrait patienter jusqu’au 5ème billet. Je sens poindre l’isbn2ppn.🙂

Trackbacks

  1. Automatisation Colodus/Javascript : les fonctions | Bibliothèques [reloaded]

Les commentaires sont fermés.

%d blogueurs aiment cette page :