ADOBE Breeze 5.0 Guide d’intégration [fr]

Guide d’intégration de Breeze
Marques de commerce
1 Step RoboPDF, ActiveEdit, ActiveTest, Authorware, Blue Sky Software, Blue Sky, Breeze, Breezo, Captivate, Central, ColdFusion, Contribute, Database Explorer, Director, Dreamweaver, Fireworks, Flash, FlashCast, FlashHelp, Flash Lite, FlashPaper, Flex, Flex Builder, Fontographer, FreeHand, Generator, HomeSite, JRun, MacRecorder, Macromedia, MXML, RoboEngine, RoboHelp, RoboInfo, RoboPDF, Roundtrip, Roundtrip HTML, Shockwave, SoundEdit, Studio MX, UltraDev et WebHelp sont des marques déposées ou des marques de commerce de Macromedia, Inc. aux Etats-Unis ou dans d’autres pays y compris au niveau international. Les autres noms de produits, logos, concepts, titres, mots ou phrases mentionnés peuvent être des marques commerciales, des marques de service ou des appellations commerciales de Macromedia, Inc. ou d’autres entités dans certains pays y compris au niveau international.
Informations au sujet des parties tierces
Ce guide contient des liens vers des sites Web tiers qui ne sont pas contrôlés par Macromedia et Macromedia ne peut en aucun cas être tenu responsable de leur contenu. Si vous accédez à un site Web tiers mentionné dans ce guide, vous le faites à vos propres risques. Macromedia fournit des liens dans un but de commodité uniquement et l’inclusion du lien n’implique pas que Macromedia est responsable ou accepte de l’être vis-à-vis du contenu de ces sites tiers.
Copyright © 1997-2005 Macromedia, Inc. Tous droits réservés. Le présent manuel ne doit pas être copié, photocopié, reproduit, traduit ou converti sous tout format électronique ou lisible par une machine, en tout ou partie, sans l’autorisation écrite préalable de Macromedia, Inc. Nonobstant les dispositions précédentes, le propriétaire ou l’utilisateur autorisé d’une copie valide du logiciel avec lequel ce manuel a été livré est autorisé à imprimer une seule copie de ce manuel à partir de la version électronique de ce dernier, ce propriétaire ou utilisateur autorisé ayant comme unique objectif d’apprendre à utiliser ce logiciel, sous réserve qu’aucune section de ce manuel ne soit imprimée, reproduite, distribuée, revendue ou transmise pour tout autre motif, y compris, mais sans s’y limiter, des motifs commerciaux, tels que vendre des copies de cette documentation ou proposer des services d’assistance facturés.
Remerciements
Directeur : Erick Vera
Gestion du projet : Stephanie Gowin
Rédaction : Jody Bleyle
Rédactrice en chef : Rosana Francescato
Edition : Linda Adler, Geta Carson, Evelyn Eldrige, Mary Ferguson, Lisa Stanziano, Jessie Wood
Gestion de la production et de l’édition : Patrice O’Neill
Conception et production : Adam Barnett, John Francis
Première édition : Mai 2005
Macromedia, Inc. 601 Townsend St. San Francisco, CA 94103

TABLE DES MATIÈRES

INTRODUCTION : Avant de commencer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Utilisateurs concernés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Nouvelles fonctionnalités des API XML de Breeze. . . . . . . . . . . . . . . . . . . . . . . . . . 9
Fonctionnalités modifiées des API XML de Breeze . . . . . . . . . . . . . . . . . . . . . . . . 10
Guide des supports pédagogiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Autres ressources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Conventions typographiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
CHAPITRE 1 : Utilisation des API XML de Breeze . . . . . . . . . . . . . . . . . . . . . . . . 13
Flux de données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Appel d’une API sur le serveur. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Présentation des paramètres. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Présentation des mandants, des SCO et des identifiants. . . . . . . . . . . . . . . . . . . . . 17
Sécurité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
CHAPITRE 2 : Utilisation de filtres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Présentation des filtres. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Présentation des filtres de tri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Exemples de filtres spéciaux. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Liste des filtres gérés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
Test du code dans un navigateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Pour en savoir plus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
CHAPITRE 3 : Tâches courantes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Appel de la première API. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Connexion à Breeze. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Création d’un utilisateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Ajout d’un utilisateur dans un groupe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Affichage des réunions, des cours et des événements d’un utilisateur . . . . . . . . . . . 31
Création d’une réunion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Création d’une réunion à partir d’un modèle. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Création et gestion de cursus de formation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Intégration de Breeze à un service d’annuaire. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Intégration de Breeze à un portail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
Génération de rapports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
3
CHAPITRE 4 : Informations de référence sur les API XML. . . . . . . . . . . . . . . . . . 41
Exemple d’entrée API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Liste d’API par fonction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
API classées par ordre alphabétique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Informations de référence sur les API. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
accesskey-exec . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
accesskey-info . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
acl-field-info . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
acl-field-list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
acl-field-update . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
acl-preference-update. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
action-list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
common-info . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
custom-field-update. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
custom-fields. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
custom-fields-delete. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
group-membership-update . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
learning-path-info . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
learning-path-update. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
login . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
logout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
permissions-info . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
permissions-reset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
permissions-update . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
principal-info . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
principal-list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
principal-list-by-field. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
principal-update . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
principals-delete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
report-account-meeting-attendance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
report-active-meeting-presenters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
report-active-meetings. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
report-bandwidth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
report-bulk-consolidated-transactions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
report-bulk-content-quiz. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
report-bulk-content-quiz-results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
report-bulk-content-slide-views . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
report-bulk-course-quiz. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
report-bulk-course-results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
report-bulk-meeting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
report-bulk-meeting-attendance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
report-bulk-objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
report-bulk-questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
report-bulk-slide-views . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
report-bulk-users. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
report-course-status. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
report-course-takers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
report-disk-usage. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
report-meeting-attendance. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
4Table des matières
report-meeting-concurrent-users . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
report-meeting-session. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
report-meeting-sessions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
report-meeting-session-slots. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
report-meeting-summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
report-my-courses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
report-my-events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
report-my-meetings. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
report-principal-list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
report-quiz-answer-distribution. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
report-quiz-definition-answers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
report-quiz-definition-questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
report-quiz-interactions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
report-quiz-question-answer-distribution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
report-quiz-question-distribution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
report-quiz-question-response . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
report-quiz-question-totals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
report-quiz-summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
report-quiz-takers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
report-quotas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
report-sco-slides. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
report-sco-views. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
report-survey-question-response . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
sco-build . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
sco-contents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
sco-delete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
sco-expanded-contents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
sco-info . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
sco-move. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
sco-nav . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
sco-search . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
sco-shortcuts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
sco-update. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
sco-upload. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
user-accounts. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
user-transcript-update . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
user-update-pwd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
CHAPITRE 5 : Informations de référence sur les résultats XML. . . . . . . . . . . . . 145
Code XML renvoyé. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
Exemple de balise XML. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
Balises XML classées par ordre alphabétique . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
access-key (conteneur). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
access-key (clé) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
access-key-group . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
access-keys. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
account . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
acl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
acl-field-list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
Table des matières 5
acl-fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
action . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
actions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
answer-correct . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
answer-text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
body . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
comment. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
common . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
contact . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
cookie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
course . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
custom-fields. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
date . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
date-begin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
date-closed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
date-created. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
date-end . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
date-expired. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
date-last-taken. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
date-modified . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
date-taken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
date-time-attempted . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
domain-name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
duration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
email . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
event . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
expanded-scos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
expired . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
field. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
file. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
first-name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
hit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
host . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
invalid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
last-name. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
last-viewed. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
last-viewed-date. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
learning-path. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
learning-paths . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
login . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
meeting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
most-recent-session . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
my-courses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
my-events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
my-meetings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
participant-name. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
path. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
6Table des matières
permission. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
permissions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
physical-path. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
preferences. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
presentation-name. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
principal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
principal-list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
principal-name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
question . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
question-text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
quiz-name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
quiz-definition-answers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
quiz-definition-questions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
quiz-name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
quota. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
report-account-meeting-attendance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
report-active-meeting-presenters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
report-active-meetings. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
report-bandwidth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
report-bulk-consolidated-transactions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
report-bulk-content-quiz. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
report-bulk-content-quiz-results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
report-bulk-course-quiz. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194
report-bulk-course-quiz-results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
report-bulk-meeting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
report-bulk-meeting-attendance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
report-bulk-objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
report-bulk-questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198
report-bulk-slide-views . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198
report-bulk-users. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
report-course-status. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
report-disk-usage. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
report-meeting-attendance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
report-meeting-concurrent-users . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
report-meeting-session. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
report-meeting-sessions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
report-meeting-session-slots. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
report-meeting-summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
report-principal-list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
report-quiz-answer-distribution. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
report-quiz-interactions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
report-quiz-question-answer-distribution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
report-quiz-question-distribution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
report-quiz-question-response . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
report-quiz-question-totals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
report-quiz-results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
report-quiz-summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
report-quiz-takers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
report-quotas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212
report-sco-slides. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212
Table des matières 7
report-sco-views. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
report-survey-question-response . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
report-training-concurrent-users . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214
response. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
row . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
sco. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216
sco-author . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217
sco-data. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217
sco-name. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218
sco-nav . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218
sco-search-info. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
scos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
shortcuts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
source-sco . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221
status. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222
time-slot-begin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
time-slot-end. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
time-taken. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
url . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
url-path. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
user (common-info) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
user (user-accounts). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
user-agent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226
user-first-name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226
user-last-name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226
user-login . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227
user-name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227
users . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228
value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228
version. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229
view-date-time. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229
INDEX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
8Table des matières
INTRODUCTION

Avant de commencer

Les services Web XML Macromedia Breeze permettent à un système externe (tel qu’une application Web) d’interagir avec un serveur Breeze.
Le présent guide explique comment appeler des services Web XML (également appelés API ou actions) sur le serveur Breeze à partir du système externe et comment interpréter les résultats XML renvoyés par Breeze. Il comporte également des sections de référence expliquant le rôle de chaque interface de programmation d’application (API), ainsi que celui des paramètres correspondants.

Utilisateurs concernés

Le présent guide s’adresse aux développeurs qui souhaitent intégrer les services Web XML de Breeze dans leurs systèmes externes, tels que les applications Web.
Il implique des notions de base du code XML et de l’utilisation des requêtes HTTP pour communiquer entre une application et un serveur. Vous devez également savoir comment programmer en langage serveur, tel que CFML (Macromedia ColdFusion Markup Language).

Nouvelles fonctionnalités des API XML de Breeze

Les API de champs personnalisés vous permettent d’ajouter et de mettre à jour des champs
personnalisés, ainsi que d’en extraire des informations :
acl-field-update.
De nouvelles API de génération de rapports vous permettent d’extraire des données du serveur
Breeze :
questions my-events
Les API de type report-quiz mises à jour incluent de nouveaux types de données d’interaction :
report-quiz-interactions, report-quiz-question-answer-distribution, report-quiz-question-distribution, report-quiz-question-response.
Les API associées aux mandants mises à jour comportent des informations sur les champs
report-bulk-consolidated-transactions, report-bulk-objects, report-bulk-
, report-bulk-slide-views, report-bulk-users, report-bandwidth et report- .
personnalisés.
Les API SCO mises à jour gèrent de nouveaux types de SCO (Shareable Content Object) et de
contenus.
acl-field-info, acl-field-list,
9
Les nouvelles API SCO répertorient tous les SCO d’un compte. Utilisez l’API sco-expanded-
contents
Les API de type curriculum vous permettent de collecter des informations sur les curriculums et
de mettre à jour ces derniers :
associée à des filtres pour localiser des SCO déterminés.
learning-path-info, learning-path-update.

Fonctionnalités modifiées des API XML de Breeze

Certaines API prises en charge dans Breeze 4 ne sont plus gérées par Breeze 5.1. Pour plus d’informations sur les API de substitution, consultez le cas échéant les sections correspondantes du Chapitre 4, Informations de référence sur les API XML, page 41. Les API suivantes ne sont plus prises en charge dans Breeze 5.1 :
accesskey-exec
accesskey-info
report-account-meeting-attendance
report-bandwidth
report-bulk-content-quiz
report-bulk-content-quiz-results
report-bulk-content-slide-views
report-bulk-course-quiz
report-bulk-course-results
report-bulk-meeting
report-bulk-meeting-attendance
report-course-takers
report-disk-usage
report-meeting-session
report-meeting-session-slots
report-principal-list
report-quiz-answer-distribution
report-quiz-definition-answers
report-quiz-definition-questions
report-quiz-question-totals
10 Introduction : Avant de commencer

Guide des supports pédagogiques

Breeze dispose de plusieurs supports qui permettent de maîtriser rapidement ce produit. Outre le présent guide, les manuels électroniques et les systèmes d’aide en ligne suivants sont disponibles :
Le Guide d’installation et de configuration de Breeze indique comment installer les applications
Breeze. Ce manuel est disponible sous forme d’insert sur le DVD pour les utilisateurs professionnels, ainsi qu’au format PDF.
Le Mode d’emploi de Breeze Manager décrit comment utiliser les composants d’administration,
de présentation et de formation de Breeze Meeting. Vous pouvez accéder au guide Mode d’emploi de Breeze Manager à partir de la page d’accueil de Breeze Manager et du lien Aide de l’application Web Breeze Manager.
Mode d’emploi de Breeze Meeting à l’intention des participants/présentateurs de réunions décrit
l’utilisation de l’application Web Breeze pour héberger des réunions en ligne et en temps réel. Cette documentation inclut des procédures qui démontrent à quel point il est facile d’ajouter des diapositives, des fichiers Macromedia Flash SWF, des images, du son et des vidéos à vos présentations.
Il comprend aussi des informations utiles aux utilisateurs participant à une réunion en temps
réel en ligne. Breeze Live met à la disposition des participants différentes options qui facilitent la participation. Les participants peuvent par exemple s’envoyer des messages et des questions entre eux ainsi qu’aux présentateurs. Ils peuvent également participer en direct grâce aux fonctions audio et vidéo. Vous pouvez accéder à cette documentation à partir de la page d’accueil de l’application Breeze Manager, ainsi que du menu Aide dans une salle de réunion Breeze Meeting en sélectionnant Aide > Aide de Breeze Meeting.
Le Mode d’emploi de Macromedia Breeze Presenter décrit le plug-in permettant de créer des
présentations Breeze à partir de PowerPoint. Vous pouvez accéder au Mode d’emploi de Macromedia Breeze Presenter à partir de la page d’accueil de Breeze Manager et du menu Breeze intégré à Microsoft PowerPoint en sélectionnant Breeze > Aide.
Remarque : L’intérêt de ces guides dépend des applications installées sur la plate-forme de présentation Breeze, du type d’utilisateur (gestionnaire du contenu de la réunion, ingénieur informatique ou présentateur de cours) et des autorisations associées au compte Breeze de l’utilisateur.
Guide des supports pédagogiques 11

Autres ressources

Vous trouverez ci-dessous une liste de ressources disponibles sur le Web :
Le Centre des développeurs Breeze, à l’adresse macromedia.com (www.macromedia.com/fr/
devnet/breeze/), contient des exemples de code, ainsi que des articles relatifs à l’intégration de
Breeze.
The Web Services Primer, à l’adresse xml.com (http://webservices.xml.com/pub/a/ws/2001/04/
04/webservices/) constitue un excellent point de départ pour les services Web.
« Working with XML and ColdFusion » dans le manuel ColdFusion Developer’s Handbook
(www.macromedia.com/devnet/mx/coldfusion/articles/cf_handbk_ch6.html, en anglais uniquement) comporte des informations sur les notions de base du code XML et la rédaction de code avec CFML.
« Leveraging XML with ColdFusion » (www.macromedia.com/devnet/mx/coldfusion/articles/
cf_handbk_ch7.html, en anglais uniquement) traite des services Web, du protocole SOAP
(Simple Object Access Protocol) et des méthodes d’appel des services Web via CFML.
La spécification XSL Transformations (XSLT) (www.w3.org/TR/xslt) présente le code XSLT,
que vous pouvez utiliser pour convertir les données en d’autres formats.
Numeric representation of Dates and Time (www.iso.ch/iso/en/prods-services/popstds/
datesandtime.html) fournit des informations sur le format de date et d’heure de la norme ISO
8601. Plus spécifique, la note W3C relative à la date et à l’heure (www.w3.org/TR/NOTE-
datetime) est consacrée au profil ISO 8601 retenu par Breeze.

Conventions typographiques

Ce manuel utilise les conventions typographiques suivantes :
Une police en italique indique une valeur qui doit être remplacée (par exemple, dans le chemin
d’un dossier).
La police de code identifie le code. Elle met également en évidence le nom des API, des
paramètres, des balises et des attributs.
Une police en gras désigne une citation ou un élément de menu.
12 Introduction : Avant de commencer
CHAPITRE 1

Utilisation des API XML de Breeze

Le modèle d’interface de programmation d’application (API) XML de Macromedia Breeze convertit les interfaces en un ensemble de services Web XML. Ces services permettent à un système externe, tel qu’un portail, de communiquer avec le serveur Breeze en utilisant le protocole HTTP ou HTTPS pour appeler des API sur le serveur et recevoir les résultats formatés en tant que code XML. Vous pouvez utiliser les services Web pour ajouter le service de gestion et les fonctionnalités de création de rapports de Breeze sur votre système externe. Pour appeler les API XML de Breeze, vous pouvez utiliser tout langage capable de gérer XML via HTTP.
Remarque : Breeze ne prend pas encore en charge le protocole SOAP (Simple Object Access Protocol).
Le présent chapitre porte sur les flux de données entre le serveur Breeze et les applications Web, et indique comment définir les paramètres et les autorisations de sécurité.
13

Flux de données

Le diagramme suivant illustre le flux de données dans une application Web qui interagit avec le serveur Breeze :
Navigateur Web
Etape 1 : Le navigateur Web demande une page.
Etape 2 : Le serveur Web trouve la page et la passe au serveur d’applications.
Etape 3 : Le serveur d’applications exécute du code.
Etape 4 : Le serveur d’applications appelle l’API sur le serveur Breeze.
Requête
Serveur Web
<HTML>
<code>
</HTML>
Serveur d'applications
Action
Réponse
<HTML> <p>Hi</p> </HTML>
Données XML
Etape 7 : Le serveur Web envoie la page finale au navigateur ayant émis la requête.
Etape 6 : Le serveur d’applications insère des données dans la page, puis la passe au serveur Web.
Etape 5 : Le serveur Breeze renvoie des données XML au serveur d’applications.
Serveur Breeze
L’exemple suivant décrit ce qui risque de se produire lorsqu’un utilisateur se connecte au portail de formation d’un site intranet créé avec Macromedia ColdFusion MX qui a recours aux services Web XML de Bree z e :
1.
Un utilisateur connecté se sert d’un navigateur Web pour demander une page qui affiche la liste des cours auxquels il est inscrit.
2.
Le serveur Web trouve la page et la passe au serveur d’applications.
3.
Le serveur d’applications analyse et exécute le code ColdFusion contenu dans la page.
14 Chapitre 1 : Utilisation des API XML de Breeze
4.
Lors de l’exécution du code, le serveur d’applications appelle une API sur le serveur Breeze de la société, afin d’obtenir la liste des cours. L’appel à l’API prend la forme d’une requête HTTP
POST.
5.
Le serveur Breeze exécute l’API et renvoie les données XML résultantes au serveur d’applications.
6.
Le code du serveur d’applications analyse le code XML renvoyé, insère des données dans la page Web en fonction des besoins, puis passe la page finale au serveur Web.
7.
Le serveur Web passe la page finale au navigateur, qui l’affiche.

Appel d’une API sur le serveur

Pour appeler une API sur le serveur Breeze, passez les paramètres appropriés au servlet de services Web à l’adresse http://nom_serveur/api/xml. Pour appeler les API XML de Breeze, vous pouvez utiliser tout langage capable de gérer XML via HTTP.
Toutes les API requièrent le paramètre
action à l’URL du servlet de services Web, suivi d’une chaîne de requête, comme suit :
http://server_name/api/xml?action=action_name
action, qui indique leur nom. Vous ajoutez le paramètre
La plupart des API gèrent également d’autres paramètres. Pour plus d’informations sur les paramètres supplémentaires pris en charge par une API donnée, consultez la section correspondant à celle-ci dans le Chapitre 4, Informations de référence sur les API XML, page 41.
Utilisez l’une des méthodes suivantes pour transmettre les paramètres au serveur :
Créez une chaîne de requête (une URL qui inclut les paramètres de la requête) et transmettez-
la au serveur sous forme de requête HTTP sur
application/x-www-form-urlencoded. Dans la plupart des cas, il n’est pas nécessaire de
définir le type de contenu de façon explicite lorsque vous appliquez cette méthode.
L’URL à utiliser pour la chaîne de requête prend la forme
api/xml?action=nom_action
. Les paramètres de l’API sont ajoutés en option et séparés par
des symboles &.
GET ou POST, le type de contenu HTTP étant réglé
http://breeze.example.com/
Créez un objet XML contenant les paramètres sous forme de balises param imbriquées dans
une balise HTTP étant réglé sur
Le code suivant appelle l’API
http://admin.breezecentral.com/api/
Le code ci-dessous est équivalent au code précédent, mais utilise POST plutôt que GET :
<params>
</params>
Pour consulter un exemple de code indiquant comment appeler une API, reportez-vous au
Chapitre 3, Tâc h e s c o u ra n t e s , page 27.
params, puis envoyez une requête HTTP POST au serveur, le type de contenu
text/xml ou application/xml.
login par le biais d’une requête HTTP GET :
xml?action=login&login=jon@doe.com&password=foobar
<param name="action">login</param> <param name="login">jon@doe.com</param> <param name="password">foobar</param>
Appel d’une API sur le serveur 15
Remarque : Les exemples de code figurant dans le présent manuel utilisent des paramètres de requête, par souci de clarté et parce que l’utilisation du code CFML (Macromedia ColdFusion Markup Language) pour envoyer des objets XML contenant des paramètres est soumise à certaines limitations. Macromedia recommande d’utiliser si possible la méthode dont le code HTTP met en oeuvre les méthodes GET et POST, l’utilisation de POST permet parfois de renforcer la sécurité lorsque vous passez des paramètres dans la chaîne de requête. Pour plus d’informations, consultez la section Sécurité, page 18.
POST. En raison de la façon

Connexion à Breeze au préalable

Seuls les utilisateurs connectés peuvent appeler la plupart des API. Par conséquent, vous devez appeler l’API suivantes sans vous connecter :
login avant d’appeler la plupart des autres API. (Vous pouvez appeler les API
action-list, common-info, login et user-accounts.)
Lors de la connexion, le serveur Breeze renvoie des résultats en code XML pour indiquer si la connexion a réussi. Les en-têtes HTTP de ces résultats incluent un cookie appelé Lorsque vous recevez les résultats d’un appel inclure la valeur du cookie
BREEZESESSION dans toutes les requêtes transmises ultérieurement
login, enregistrez la valeur de ce cookie. Vous devez
BREEZESESSION.
avec cet identifiant. Dans le cas contraire, l’API échoue. Pour obtenir des exemples, consultez la section Connexion à Breeze, page 29.
Votre application permet de connecter plusieurs utilisateurs et autorise chacun d’eux à appeler des API. Par exemple, lorsqu’un utilisateur ordinaire exécute votre application, il peut s’avérer utile d’utiliser les informations d’identification de cet utilisateur pour appeler des API, tout en conservant une connexion administrateur pour effectuer les tâches nécessitant ce niveau d’autorisation.
Pour plus d’informations sur la sécurité dans Breeze, consultez la section Sécurité, page 18.

Présentation des paramètres

La plupart des API permettent de spécifier un ou plusieurs paramètres supplémentaires. (L’utilisation du paramètre
Appel d’une API sur le serveur, page 15.
Vous spécifiez généralement les paramètres sous forme de paire nom-valeur, mais le processus exact dépend du langage utilisé pour appeler l’API sur le serveur Breeze. Pour consulter un exemple de code en langage CFML (ColdFusion Markup Language), reportez-vous au chapitre
Chapitre 3, Tâc h e s c o u ra n t e s , page 27.
Dans le chapitre consacré aux API, tous les paramètres recensés sont obligatoires. Les paramètres facultatifs sont signalés de façon explicite.
Certaines API vous permettent de spécifier plusieurs paramètres du même nom. Par exemple, l’API
principals-delete gère le paramètre principal-id. Vous pouvez spécifier plusieurs
paires nom-valeur
principal-id (portant toutes le nom principal-id) lorsque vous appelez
l’API sur le serveur Breeze.
16 Chapitre 1 : Utilisation des API XML de Breeze
action est obligatoire.) Pour plus d’informations, consultez la section
L’exemple de code CFML suivant illustre la suppression de deux utilisateurs donnés par le biais d’un appel API unique en spécifiant deux paramètres l’utilisation des variables
baseurl et loginCookie, que vous définissez lors du processus de
principal-id. Cet exemple requiert
connexion. Pour plus d’informations, consultez la section Intégration de Breeze à un service
d’annuaire, page 33.
<cfset idOne=12345> <cfset idTwo=23456> <cfhttp url="#baseurl#api/xml?action=principals-delete&principal-
id=#idOne#&principal-id=#idTwo#" method="post"> <cfhttpparam type="Cookie" name="BREEZESESSION" value="#loginCookie#">
</cfhttp>
Certaines API gèrent l’utilisation de jeux de paramètres multiples. Exemple : L’API group-
membership-update
accepte les paramètres group-id, principal-id, et is-member. Pour effectuer des mises à jour multiples par le biais d’un appel unique, vous pouvez spécifier chacun de ces paramètres pour le mandant et le groupe, puis les spécifier à nouveau sous la même forme pour un autre élément, et ainsi de suite.

Présentation des mandants, des SCO et des identifiants

Breeze comporte deux types d’entités de base : les mandants et les SCO (Shareable Content Objects).
Le terme mandant couvre toute entité qui dispose d’autorisations régissant ses interactions avec les SCO. Les types de mandants les plus courants correspondent à Utilisateur (un utilisateur spécifique) et Groupe (un groupe d’utilisateurs).
Il existe d’autres types de mandants, appelés groupes prédéfinis : Administrateurs, Auteurs, Gestionnaires de formation, Gestionnaires d’événements, Responsables de réunion et Hôtes de séminaires.
Vous pouvez créer des utilisateurs et des groupes et modifier leurs autorisations. Il est possible d’ajouter des utilisateurs et des groupes aux groupes prédéfinis, mais non de modifier les autorisations de ces derniers. Pour plus d’informations sur les groupes prédéfinis, consultez le manuel Mode d’emploi de Breeze Manager.
Présentation des mandants, des SCO et des identifiants 17
Un SCO est un document Breeze, tel une réunion ou un événement. Un dossier est également un SCO. Breeze comprend les types de SCO suivants :
SCO Description
content Fichier ou ensemble de fichiers accessible en lecture seule transféré sur le
serveur Breeze. Exemple : un fichier FLV, un fichier SWF, une image, un module ou un fichier HTML.
curriculum Curriculum Breeze
event Evénement Breeze
folder Un dossier stocké sur le disque dur du serveur qui renferme un contenu Breeze.
link Une référence à un autre SCO, utilisée par un curriculum pour accéder à d’autres
SCO. Lorsqu’un contenu est ajouté à un curriculum, un lien est établi entre ce dernier et le contenu.
meeting Réunion Breeze.
tree La racine d’une arborescence de dossiers. La racine d’une arborescence est
traitée en tant que hiérarchie indépendante. Vous ne pouvez pas déterminer le dossier parent d’une arborescence à partir de cette arborescence.
Chaque mandant et SCO disposent d’un identifiant numérique unique. Lorsque vous appelez une API qui utilise l’identifiant d’une entité en tant que paramètre, le nom du paramètre indique le type d’entité auquel correspond l’identifiant, mais cet identifiant reste le même quel que soit le nom du paramètre. Les noms de paramètres associés aux identifiants incluent
, group-id, parent-acl-id, principal-id, sco-id et user-id.
id
acl-id, folder-
Ainsi, pour mettre à jour un mot de passe utilisateur, appelez l’API l’identifiant de l’utilisateur sous la forme du paramètre d’utilisateur, appelez l’API du paramètre
principal-id.
Quelques autres types d’identifiants, tels
question-id, ne sont pas associés à un mandant ou à un SCO. Dans la plupart des cas, un nom
de paramètre qui se termine en
principal-info et indiquez l’identifiant de l’utilisateur sous la forme
account-id, answer-id, permission-id et
-id indique que la valeur correspondante est un identifiant de
user-id. Pour déterminer un nom
user-update-pwd et indiquez
mandant ou de SCO.

Sécurité

Le modèle de sécurité de Breeze garantit que tout code appelant une API donnée est habilité à le faire. Quasiment tout appel API doit comprendre un cookie représentant un utilisateur connecté spécifique. Pour plus d’informations, consultez la section Connexion à Breeze au préalable,
page 16.
Pour plus d’informations sur les codes d’état susceptibles d’être renvoyés par le serveur, consultez la section relative à la balise
18 Chapitre 1 : Utilisation des API XML de Breeze
status.

Présentation des autorisations

Les autorisations régissent les interactions entre un mandant spécifique et un SCO.
L’affectation d’autorisations à un mandant spécifique sur un SCO donné porte le nom de liste de contrôle des accès (ACL). Une ACL est capable de gérer les affectations d’autorisations entre l’objet et un mandant, mais n’en contient parfois pas. Toute ACL comprend trois informations : l’identifiant d’un SCO, d’un mandant ou d’un compte (généralement appelé identifiant d’ACL dans ce contexte), puis l’identifiant d’un mandant et un mot clé spécifiant les autorisations (généralement désigné comme identifiant d’autorisation).
Breeze gère deux types d’autorisation : les autorisations associées à des SCO spécifiques et les autorisations qui s’appliquent à tous les utilisateurs appartenant à des groupes spéciaux, appelés groupes prédéfinis. Les autorisations relatives aux groupes prédéfinis priment sur les autorisations définies sur un SCO.
Pour identifier les autorisations d’un utilisateur connecté sur un élément donné, appelez l’API
permissions-info. Pour modifier les autorisations d’un mandant, appelez l’API principal-
.
update
Si un mandant ne dispose pas d’autorisations spécifiques sur un SCO donné, les autorisations de ce mandant sur le parent du SCO sont appliquées.
Vous pouvez spécifier les autorisations suivantes sur un SCO :
Autorisation Description
Denied Le mandant ne peut ni afficher, ni gérer le SCO. Il lui est également impossible
d’y accéder. Vous ne pouvez pas associer cette autorisation à des réunions ou des cours.
Host (Réservée aux réunions) Cette autorisation se réfère à l’hôte d’une réunion.
Elle permet au mandant de créer ou de présenter la réunion, même s’il ne dispose pas d’une autorisation View sur le dossier parent de la réunion.
L’autorisation Presenter a été remplacée par Host. Le concept de présentateur dans Breeze 4 correspond à hôte dans Breeze 5.1.
Manage Le mandant peut afficher, supprimer, déplacer et modifier le SCO. Cette
autorisation permet également au mandant de définir des autorisations sur le SCO. Lorsqu’il s’agit d’un dossier, l’autorisation Manage permet au mandant d’afficher des rapports sur les fichiers que contient le dossier et de créer de nouveaux dossiers. Vous ne pouvez pas associer cette autorisation à des réunions ou des cours.
Publish Le mandant peut publier le SCO sur le serveur et le mettre à jour. Cette
autorisation inclut l’autorisation View. Elle permet également au mandant d’afficher des rapports relatifs au SCO. Pour un dossier, l’autorisation Publish ne permet pas au mandant de créer de nouveaux dossiers dans le dossier ou de définir des autorisations sur ce dernier. Vous ne pouvez pas associer cette autorisation à des réunions ou des cours.
View Le mandant peut afficher le SCO, mais ne peut pas la modifier. Dans le cadre
d’un cours, l’autorisation View permet au mandant de s’inscrire. Dans le cadre d’une réunion, elle permet au mandant de participer. Dans le cadre d’un dossier, elle permet au mandant d’afficher le contenu du dossier.
Sécurité 19
Dans la mesure où un groupe est un mandant, vous pouvez affecter les autorisations citées ci­dessus sur un SCO à un groupe personnalisé comme à un utilisateur donné. Si un groupe dispose d’une autorisation spécifique, tous ses membres en héritent. Utilisez l’API
pour ajouter un membre à un groupe. Utilisez l’API permissions-update pour définir
update
group-membership-
les autorisations d’un groupe sur un SCO donné.
Pour plus d’informations sur les groupes et les autorisations, consultez le chapitre 19, consacré aux utilisateurs et aux groupes, du manuel Mode d’emploi de Breeze Manager.

Présentation de la sécurité et du lancement de contenu

Lorsque vous lancez un SCO, vous devez vous authentifier. Pour ce faire, procédez comme suit, au choix :
Lorsque vous ouvrez l’URL du contenu, ajoutez le paramètre de requête session, dont la
valeur doit être égale à celle du cookie de connexion l’exemple ci-dessous :
http://breeze.example.com/p12345678/?session=breez3238uf298
Dans la mesure où toute personne disposant de l’URL spécifiée peut se comporter comme un utilisateur connecté, cette approche présente des risques potentiels du point de vue de la sécurité. Par conséquent, utilisez le cookie d’un utilisateur ordinaire, plutôt que celui d’un administrateur.
Par ailleurs, si des utilisateurs transmettent l’URL à un collègue (par le biais d’une opération copier-coller dans un message électronique, par exemple), ils donnent accès à leur compte, soit un risque d’atteinte à la sécurité.
BREEZESESSION, ainsi que l’illustre
Vous pouvez définir un cookie BREEZESESSION sur le navigateur d’un utilisateur en appliquant
la valeur du cookie de connexion.
Cependant, cette approche ne fonctionne que si votre application tourne sur un serveur utilisant le même nom de domaine que le serveur Breeze.
Par ailleurs, si votre serveur d’applications réside dans un environnement de servlet J2EE (tel que Macromedia ColdFusion ou Java), il risque d’utiliser également le cookie
BREEZESESSION,
d’où un conflit potentiel entre Breeze et le serveur d’applications.
Vous pouvez vous contenter d’ouvrir l’URL et de demander à l’utilisateur de se connecter de
nouveau.
Cette approche est plus sûre, mais moins pratique du point de vue des utilisateurs.
20 Chapitre 1 : Utilisation des API XML de Breeze
CHAPITRE 2

Utilisation de filtres

Les données et informations stockées dans le référentiel de contenu Macromedia Breeze de votre société risquent de se multiplier au fil du temps. Si tel est le cas, il est parfois préférable de ne pas répertorier chaque élément du référentiel à l’intention de tous les utilisateurs. Vous pourriez par exemple recenser les cours les plus récents et la présentation consacrée aux résultats financiers du dernier trimestre sur votre intranet d’entreprise. Il est impératif de trier et d’organiser votre référentiel dont le volume va croissant pour assurer aux utilisateurs des délais de recherche d’informations réduits.
Dans les services Web XML de Macromedia Breeze, l’utilisation de filtres vous permet de définir des critères de recherche de données à partir de Breeze. Utilisez un ou plusieurs filtres associés à une API XML déterminée pour garantir que les données consultées par les utilisateurs répondent exactement à leurs besoins.

Présentation des filtres

Vous pouvez associer un filtre à la plupart, mais non à la totalité, des champs dans le code XML. Vous pouvez également inclure ou inclure des valeurs de champ. Vous pouvez aussi trier les résultats et filtrer les données renvoyées pour réduire le nombre de résultats (les 25 premières lignes correspondantes, par exemple).
Les filtres sont combinés aux appels d’action pour modifier ou classer les données renvoyées par le serveur Breeze. Ils vous aident à sélectionner des données, à en exclure, voire à trier les données à afficher. Vous pouvez par exemple demander l’affichage de tous vos cours ou utiliser un filtre pour ne sélectionner que les cours qui incluent le terme « Java ». Vous pouvez également répertorier tous les utilisateurs ou ne sélectionner que les utilisateurs dont le nom de famille correspond à Dupont et les trier par nom de connexion.
Pour utiliser un filtre, ajoutez-le à un appel d’action en le précédant du symbole &, comme suit :
report-my-course&filter-like-name=Java
Pour combiner plusieurs filtres, séparez chacun d’eux à l’aide du symbole &, comme suit :
report-my-course&filter-like-name=Java&sort-date-begin=desc
21
Comme vous pouvez le constater, les filtres comprennent un type (filter ou sort) et un modificateur facultatif (tel
nom du champ (tel
Type-Modifier-FieldName=Value
like), le nom du champ (tel name), le cas échéant, et enfin la valeur du
Java). Le format du filtre est le suivant :
Il existe deux types de filtre : un filtre de base, qui débute par le terme filter, et un filtre de tri, qui débute par le terme
sort. Vous pouvez combiner ces deux types de filtre pour obtenir le
résultat escompté. Pour plus d’informations sur les filtres, consultez la section Présentation des
filtres de tri, page 23.

Exemples de filtre

L’exemple ci-dessous est simple et permet d’illustrer le fonctionnement général des filtres. L’API de service Web Associée à un filtre portant sur le nom des cours, tel
name=Java
cas Java. Si vous ajoutez un filtre de tri tel que
name=Java&sort-date-begin=desc
report-my-courses renvoie la liste des cours auxquels vous vous êtes inscrits.
report-my-courses&filter-like-
, cette même API extrait les cours dont le titre contient le texte indiqué, soit dans ce
report-my-course&filter-like-
, Breeze trie vos cours Java et affiche en tête de liste le cours
que vous avez commencé.
Ces exemples illustrent l’utilisation de deux types de filtre : de base et de tri. Le filtre de base associe le modificateur modificateur
like, Breeze renvoie les cours dont le titre correspond exactement à Java, plutôt que
like au champ name et spécifie la valeur Java. Si vous n’indiquez pas le
ceux dont le titre inclut Java. L’utilisation du filtre de tri sans modificateur sur le champ
avec la valeur desc spécifie un ordre de tri décroissant.
begin
Le tableau ci-dessous indique quelques autres exemples qui vous permettront d’assimiler les principes de base des filtres.
date-
Filtre Description
filter-name=Analyse des objectifs
filter-like-name=Objectifs
filter-out-name=Etat
filter-like-name=Objectifs &filter-out-
status=active
filter-gt-date-begin=2004-05-01&sort-
name=asc
filter-gt-date-begin=2004-05-
01&filter-lt-date-begin=2004-05-31
22 Chapitre 2 : Utilisation de filtres
Renvoie les éléments hébergés sur le serveur dont le nom correspond à « Analyse des objectifs ». Sont inclus les réunions, les cours ou tout élément associé à un champ name.
Renvoie tous les éléments dont le nom comporte le terme « Objectifs », tel « Analyse des objectifs » ou « Objectifs trimestriels ».
Exclut tous les éléments dont le champ name contient le terme « Etat ».
Renvoie tous les éléments dont le nom contient le terme « Objectifs » qui ne sont plus actifs. Vous pouvez utiliser ce filtre pour extraire d’anciennes présentations consacrées aux « objectifs » de trimestres antérieurs.
Renvoie tous les éléments dont la date de début est antérieure au 1er mai 2004, triés par nom par ordre croissant.
Renvoie tous les éléments débutés en mai 2004.

Présentation des formats de date

Dans Breeze, les dates correspondent à un type spécial de valeur de champ conforme à la norme ISO 8601. Ainsi, le 28 mai 2004 est exprimé sous la forme est exprimé sous la forme
2004-05-28T16:23:00.000. A partir de l’année, vous pouvez utiliser
toute section de date requise pour filtrer les résultats. L’utilisation de la valeur
2004-05-28, 16:23 le 28 mai 2004
2004 renvoie tous
les éléments correspondant à cette année, ce qui ne constitue probablement pas un usage judicieux des filtres. En spécifiant l’année et le mois, vous pouvez extraire tout élément associé à un mois spécifique. Libre à vous d’ajouter d’autres sections de la date pour sélectionner les données hébergées sur le serveur les plus précises.

Présentation des filtres de tri

Les filtres de type sort vous permettent de trier les données par ordre croissant ou décroissant. Ainsi, le filtre ci-dessous tri le champ
sort-name=asc
Le code suivant trie le champ name par ordre décroissant :
sort-name=desc
Vous pouvez également effectuer des tris primaires et secondaires. Par exemple, si vous appelez l’action le champ
principal-list pour répertorier les mandants, vous pouvez effectuer un tri primaire sur
type, puis un tri secondaire sur le champ name. Tous les mandants d’un type déterminé
sont ainsi regroupés et triés par nom dans chaque groupe.
Pour ce faire, vous spécifiez les paramètres suivants :
sort1-type=asc&sort2-name=desc
name par ordre croissant :

Exemples de filtres spéciaux

Les exemples de filtrage de données ci-dessous varient selon l’action. Pour plus d’informations sur les options de tri et de filtrage associées à des actions spécifiques, consultez les sections correspondantes dans le Chapitre 4, Informations de référence sur les API XML, page 41.

Filtrage de données basé sur un champ type

Vous pouvez exclure une combinaison de types d’entrées ou n’afficher que celle-ci. Ainsi, le filtre suivant n’affiche que les types
filter-type=folder&filter-type=meeting
L’exemple suivant affiche tous les types de données, à l’exception de folder (dossier) et
meeting (réunion) :
filter-out-type=folder&filter-out-type=meeting
Si le champ type gère la valeur null, vous pouvez exclure les entrées contenant des valeurs null et non
null. L’exemple suivant n’affiche que les types null :
filter-type=null
L’exemple suivant n’affiche que les types non null :
filter-out-type=null
folder (dossier) et meeting (réunion) :
Exemples de filtres spéciaux 23

Filtrage de données basé sur la date d’un enregistrement

L’exemple suivant affiche tous les enregistrements dont la date de modification est comprise entre le 1er juillet et le 10 juillet :
filter-lt-date-modified=2004-07-10T10:00:00.000-07:00&filter-gt-date-
modified=2004-07-1T10:00:00.000-07:00

Filtrage d’un nombre spécifique d’entrées à partir d’une entrée déterminée

La technique suivante vous permet de créer une pagination lorsque le volume de données excède une page. L’exemple ci-dessous affiche 25 enregistrements à partir du 100e enregistrement :
filter-rows=25&filter-start=100

Filtrage basé sur l’appartenance à des groupes standard

Pour effectuer un filtrage basé sur l’appartenance à des groupes standard, filtrez par champ type, comme suit :
action=principal-list&filter-type=admins
N’utilisez pas le champ name pour baser le filtrage sur l’appartenance à des groupes standard, car les noms de groupe risquent d’être modifiés et ne sont donc pas fiables. L’exemple suivant illustre une technique incorrecte de filtrage basé sur l’appartenance à des groupes :
action=principal-list&filter-name=Account Administrators

Liste des filtres gérés

Les filtres comprennent un type (filter ou sort), un modificateur facultatif, le nom du champ, le cas échéant, puis la valeur du champ, ainsi que l’illustre l’exemple ci-dessous :
Type-Modifier-FieldName=Value
Le tableau ci-dessous répertorie tous les types de filtres et modificateurs gérés par Breeze.
Type Modificateur Description
filter (aucun)
filter like
filter out
filter rows
filter start
filter gt
filter lt
24 Chapitre 2 : Utilisation de filtres
Le champ doit correspondre exactement à la valeur indiquée.
Le champ doit impérativement contenir une valeur.
Le champ ne doit pas contenir la valeur spécifiée.
Limite les résultats renvoyés au nombre de lignes indiqué par la valeur. Les noms de champ ne sont pas utilisés.
Limite les résultats renvoyés au nombre de lignes indiqué par la valeur. Les noms de champ ne sont pas utilisés.
Sélectionne tous les éléments supérieurs à la valeur indiquée. Cette syntaxe est réservée aux dates.
Sélectionne tous les éléments supérieurs à la valeur indiquée. Cette syntaxe est réservée aux dates.
Type Modificateur Description
filter gte
filter lte
sort (aucun)
Sélectionne tous les éléments supérieurs ou égaux à la valeur indiquée. Cette syntaxe est réservée aux dates.
Sélectionne tous les éléments inférieurs ou égaux à la valeur indiquée. Cette syntaxe est réservée aux dates.
Trie les résultats. La valeur doit correspondre à asc ou desc.

Test du code dans un navigateur

Vous pouvez entrer une URL test dans le champ d’adresse d’une fenêtre de navigateur et observer la réponse XML du serveur. Nous vous recommandons de vous familiariser avec les filtres dans un navigateur avant de rédiger du code.
Les subtiles différences entre les filtres déterminent le type de filtre à utiliser avec certains appels d’API. L’utilisation du navigateur vous permet d’essayer rapidement diverses combinaisons et de vous rendre ainsi compte des syntaxes qui fonctionnent et de celles qui ne fonctionnent pas. Appliquée hors du navigateur, cette technique nécessite de compiler le code, de charger le résultat sur votre serveur d’applications et de le déboguer pour vérifier si un filtre mène au résultat escompté. L’utilisation d’un navigateur est en revanche beaucoup plus rapide et donne lieu à un résultat immédiat.
Vous pouvez ainsi utiliser l’URL et le filtre ci-dessous pour afficher tous les cours dont le titre contient le terme filter (filtre) et la description inclut le terme date. Cet exemple d’URL fait appel au serveur l’URL ci-dessous en substituant votre serveur à
http://breezedev.mycompany.com/api/xml?action=report-my-courses&filter-like-
name=filter&filter-like-description=date
Le résultat renvoyé dans le navigateur devrait être similaire au code ci-dessous :
<?xml version="1.0" encoding="utf-8" ?> <results> <status code="ok" />
<my-courses>
<course sco-id="2649026" status="active" type="course">
<name>Understanding Filters Part 2</name> <description>Second course in the series, covering important topics such
<url>admin.ibreeze.macromedia.com/p40583853/</url> <date-created>2004-05-26T17:51:40.840-07:00</date-created> <date-modified>2004-05-26T17:51:47.750-07:00</date-modified> <date-begin>2004-05-24T14:00:00.000-07:00</date-begin> <url-path>/p40583853/</url-path> <expired>false</expired>
</course>
</my-courses>
</results>
breezedev.mycompany.com. Connectez-vous d’abord au serveur, puis tapez
breezedev.mycompany.com :
as date and range filtering.</description>
Test du code dans un navigateur 25
Si vos filtres sont trop stricts et qu’aucun cours ne répond aux critères définis, la sortie est similaire au code ci-dessous :
<?xml version="1.0" encoding="utf-8" ?> <results> <status code="ok" />
<my-meetings />
</results>
Enfin, en essayant divers filtres et API dans le navigateur, vous risquez d’obtenir une réponse inattendue. Ainsi, si vous associez à un filtre un nom de champ incorrect, qui correspond à un autre élément de la base de données, vous pourriez recevoir une réponse XML débutant comme suit :
<?xml version="1.0" encoding="utf-8" ?> <results> <status code="internal-error">
Pour que votre code puisse être utilisé dans un environnement de production, assurez-vous qu’il prend en charge les erreurs et situations inattendues. Vérifiez la présence de codes d’état inattendus et, si vous en rencontrez, avertissez le service informatique de votre entreprise.

Pour en savoir plus

Le Centre de développement Macromedia Breeze contient un article intitulé «Working with
Filters » (Utilisation des filtres) qui décrit la procédure de construction d’un exemple
d’application qui utilise des filtres pour rechercher et trier une liste de cours. Cet article vous apprend à utiliser des filtres avec les services Web de Breeze par le biais d’un exemple simple, qui extrait la liste des cours auxquels s’est inscrit un utilisateur, puis permet à ce dernier d’effectuer des recherches et de trier la liste. Il vous explique en outre l’impact des filtres sur l’optimisation des données extraites en vue d’une utilisation dans d’autres systèmes d’entreprise.
26 Chapitre 2 : Utilisation de filtres
CHAPITRE 3

Tâches courantes

Ce chapitre décrit des scénarios typiques d’intégration de Macromedia Breeze à des applications ou systèmes externes. Ces scénarios illustrent la mise en œuvre de diverses tâches courantes. Pour effectuer ces tâches, vous appelez une ou plusieurs API sur le serveur Breeze, puis vous analysez les balises XML renvoyées par le serveur. Dans certains cas, vous utilisez les informations renvoyées comme paramètres pour l’API suivante.
Ce chapitre comporte des exemples de code montrant la mise en œuvre de certaines tâches à l’aide du langage Macromedia CFML (ColdFusion Markup Language).
Remarque : Certaines descriptions de tâche ne sont pas accompagnées d’exemples de code. La syntaxe d’appel d’une API est similaire pour toutes les API. Il est donc possible d’utiliser les exemples de code fournis comme modèles pour accomplir d’autres tâches.
Pour obtenir une description détaillée de chaque API et balise XML, consultez le Chapitre 4,
Informations de référence sur les API XML, page 41 et le Chapitre 5, Informations de référence sur les résultats XML, page 145. Ce chapitre passe en revue les tâches suivantes :
Appel de la première API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Connexion à Breeze . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Création d’un utilisateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Ajout d’un utilisateur dans un groupe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Création d’une réunion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Création d’une réunion à partir d’un modèle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Affichage des réunions, des cours et des événements d’un utilisateur . . . . . . . . . . . . . . . . . . . . 31
Création et gestion de cursus de formation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Intégration de Breeze à un service d’annuaire. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Intégration de Breeze à un portail. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
Génération de rapports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
27

Appel de la première API

Vous pouvez entrer une URL test dans le champ d’adresse d’une fenêtre de navigateur et observer dans cette dernière la réponse XML du serveur. Le code XML renvoyé est identique au code XML résultant de l’appel de l’API dans une application. Il est recommandé de se familiariser avec les appels d’API dans le navigateur avant de rédiger du code dans une application.
Pour appeler la plupart des API, vous devez être connecté à Breeze. (Les API
common-info, login et user-accounts ne nécessitent pas de connexion préalable .) Il est
recommandé d’appeler en premier lieu l’API
action-list, car elle ne requiert pas de connexion
action-list,
préalable et renvoie une liste d’API que vous pouvez appeler.
Pour appeler une API, vous devez connaître les éléments suivants :
Le domaine de votre compte Breeze.
Exemple :
breeze.votreentreprise.com.
Le nom de l’API que vous voulez appeler.
Pour obtenir la liste complète des API, consultez le chapitre Informations de référence sur les API
XML, page 41.
Pour appeler une API Breeze dans un navigateur :
1.
Ouvrez une fenêtre de navigateur.
2.
Tapez l’adresse du serveur Breeze dans la barre d’adresse du navigateur. Ajoutez le paramètre
action dans une chaîne de requête :
http://breeze.example.com/api/xml?action=action_name
3.
Appuyez sur Entrée (Windows) ou Retour (Macintosh).
L’API renvoie le code XML résultant dans la fenêtre du navigateur. Ainsi, un appel de l’API
action-list renvoie le code XML suivant :
<results> <status code="ok"/>
<actions>
<action>accesskey-info</action> <action>account-contact-update</action> <action>acl-field-info</action> <action>acl-field-list</action> <action>acl-field-update</action> <action>acl-preference-update</action> <action>action-list</action> ... list of actions continues...
</actions>
</results>
Vous pouvez également tester les filtres dans le navigateur. Pour plus d’informations, consultez la section Test du code dans un navigateur, page 25.
28 Chapitre 3 : Tâches courantes

Connexion à Breeze

La plupart des API nécessitent une connexion préalable. Par conséquent, vous devez appeler l’API
login avant la plupart des autres API. (Seules les API action-list, common-info, login et user-accounts font exception à la règle.)
Lorsque vous appelez l’API réponse inclut le cookie variable, telle
session dans les appels d’API suivants.
Pour vous connecter à Breeze :
1.
Créez une page ColdFusion au contenu suivant :
<cfif IsDefined("FORM.username")>
<cfset baseurl = "http://breezeserveraddress">
<cfhttp url="#baseurl#/api/ xml?action=login&login=#FORM.username#&password=#FORM.password#" method="GET"/>
<!-- placer la réponse dans une variable, puis dans un objet XML -->
<cfset response = CFHTTP.FileContent/> <cfset xml = XMLParse(response)>
<!-- extraire l’identifiant de BREEZESESSION de l’en-tête-->
<cfset loginHeader = CFHTTP.header> <cfset loginCookie = ListLast(ListFirst(loginHeader, ";"), "=")>
loginCookie. Passez ensuite la variable loginCookie sous forme de paramètre
login, si le résultat XML comprend le code d’état ok, l’en-tête de
BREEZESESSION. Capturez le cookie et enregistrez les résultats dans une
<cfif xml.XmlRoot.status.XMLAttributes['code'] EQ "OK">
<!-- Connexion réussie. -->
<cfhttp url="#baseurl#/api/xml?action=report-my-
meetings&session=#loginCookie#" method="GET"/>
<cfset meetings = CFHTTP.FileContent/> <cfset meetings_xml = XMLParse(meetings)/> <cfdump var="#meetings_xml#">
<cfelse>
<!-- Echec de connexion. -->
Login Failed.
</cfif>
<cfelse>
<form action="#CGI.Script_Name#" method="POST"> Username: <input type="text" name="username" size="25"><br> Password: <input type="password" name="password" size="25"><br>
</form> </cfif>
2.
Enregistrez la page sous le nom login.cfm dans le répertoire ColdFusion wwwroot.
3.
Affichez login.cfm dans un navigateur (utilisez une URL localhost).
<input type="submit" name="submit" value="Submit"><br>
Connexion à Breeze 29

Examen du code

Le tableau ci-dessous décrit le code mis en évidence et sa fonction.
Code Description
<cfif IsDefined("FORM.username")>
<cfset baseurl = "http://
breezeserveraddress">
<cfhttp url="#baseurl#/api/
xml?action=login&login=#FORM.username#& password=#FORM.password#" method="GET"/ >
<cfset response = CFHTTP.FileContent/>
<cfset xml = XMLParse(response)>
<cfset loginHeader = CFHTTP.header> <cfset loginCookie =
ListLast(ListFirst(loginHeader, ";"), "=")>
<cfif
xml.XmlRoot.status.XMLAttributes[’code’ ] EQ "OK">
<!-- Connexion réussie. -->
<cfhttp url="#baseurl#/api/
xml?action=report-my­meetings&session=#loginCookie#" method="GET"/>
<cfset meetings = CFHTTP.FileContent/
>
<cfset meetings_xml =
XMLParse(meetings)/>
<cfdump var="#meetings_xml#">
<cfelse>
<!-- Echec de connexion. -->
Login Failed.
</cfif>
<cfelse>
<form action="#CGI.Script_Name#" method="POST">
Username: <input type="text" name="username" size="25"><br> Password: <input type="password" name="password" size="25"><br>
name="submit" value="Submit"><br> </form> </cfif>
<input type="submit"
Vérifie si la variable username est définie. Si tel est le cas, le bloc de code suivant s’exécute. Dans le cas contraire, l’utilisateur entre un nom d’utilisateur (et un mot de passe) dans le formulaire qui s’affiche.
Si la variable username est définie, ce code règle la variable utilise la variable pour appeler l’API L’API
password, qu’un utilisateur tape dans un formulaire.
Place les données renvoyées par l’appel <cfhttp> dans la variable convertit les données de chaîne placées dans la variable mémorise dans la variable
Place les données extraites de l’en-tête renvoyées par l’appel La deuxième ligne analyse l’en-tête pour extraire la valeur du cookie dans la variable
Vérifie si l’attribut du code d’état que contient la réponse XML correspond à
Si le code d’état correspond à ok, l’appel de l’API
login a réussi et l’utilisateur est connecté. Vous
pouvez maintenant passer la variable en tant que paramètre comme un utilisateur connecté et appeler toute API. Ce code appelle l’API report-my-meetings, place la réponse dans la variable convertit la variable XML.
Si l’attribut du code d’état figurant dans la réponse XML de l’API login ne correspondait pas à imprimez
Si FORM.username n’est pas défini, vous devez taper un nom d’utilisateur et un mot de passe dans le formulaire qui s’affiche.
baseurl sur le nom du serveur Breeze. Il
baseurl dans la balise <cfhttp>
login sur le serveur Breeze.
login nécessite deux paramètres, login et
response. La seconde ligne
response en un document XML et les
xml.
<cfhttp> dans la variable loginHeader.
BREEZESESSION et la mémorise
loginCookie.
ok.
loginCookie
session pour vous conduire
meetings et
meetings en objet document
ok,
Login Failed.
30 Chapitre 3 : Tâches courantes
Loading...
+ 210 hidden pages