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,
and WebHelp are either registered trademarks or trademarks of Macromedia, Inc. and may be registered in the United States or
in other jurisdictions including internationally. Other product names, logos, designs, titles, words, or phrases mentioned within
this publication may be trademarks, service marks, or trade names of Macromedia, Inc. or other entities and may be registered in
certain jurisdictions including internationally.
Third-Party Information
This guide contains links to third-party websites that are not under the control of Macromedia, and Macromedia is not
responsible for the content on any linked site. If you access a third-party website mentioned in this guide, then you do so at your
own risk. Macromedia provides these links only as a convenience, and the inclusion of the link does not imply that Macromedia
endorses or accepts any responsibility for the content on those third-party sites.
The Macromedia Breeze XML web services enable your external system (such as a web
application) to interact with a Breeze server.
This manual provides information on how to call XML web services (also called APIs or actions)
on the Breeze server from your external system and how to interpret the XML results that Breeze
returns. This manual also contains reference material explaining what each application
programming interface (API) does and what its parameters are.
Audience
This manual is intended for developers who want to integrate the Breeze XML web services into
their external systems, such as web applications.
Before you use this manual, you should understand the basics of XML and of using HTTP
requests to communicate between an application and a server. You must also understand how to
program using a server language such as Macromedia ColdFusion Markup Language (CFML).
What’s new in the Breeze XML APIs
Custom field APIs let you add, update, and get information about custom fields: acl-field-
, acl-field-list, acl-field-update.
info
New Report APIs let you gather data from the Breeze server: report-bulk-consolidated-
transactions
, report-bulk-users, report-bandwidth, and report-my-events.
views
Updated Report-quiz APIs include new interaction data types: report-quiz-interactions,
Some APIs that were supported in Breeze 4 are no longer supported in Breeze 5. For information
about alternate APIs, where available, see the individual entries in Chapter 4, “XML API
Reference,” on page 41. The following APIs are no longer supported in Breeze 5:
• 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
Guide to instructional media
Breeze contains a variety of media to help you quickly learn how to use the product. In addition
to this manual, the following electronic manuals and online help systems are available:
• Breeze Installation and Configuration Guide describes how to install the Breeze applications.
This manual is available as a DVD insert for enterprise users, and as a PDF on the DVD.
• Breeze Manager User Guide describes how to use the administration, presentation, and training
applications of Breeze Meeting. You can access Breeze Manager User Guide from the Breeze
Manager home page and from the Help link in the Breeze Manager web application.
10Introduction: Before You Begin
• Breeze Meeting User Guide for Hosts and Presenters includes information about using the Breeze
Meeting web application to host online real-time meetings. The documentation includes
procedures that demonstrate the simplicity of adding slides, Flash SWF files, images, live
audio, and video to your presentation. You can access Breeze Meeting User Guide for Hosts and Presenters from the Breeze Manager home page and from the Help menu within a Breeze Live
meeting room (when you enter as a presenter).
• Breeze Meeting User Guide for Participants contains information that is relevant to users who are
participating in an online real-time meeting. Breeze Meeting offers participants several options
to make their experience truly participatory, including the ability to send messages and
questions to presenters and to each other, and the ability to participate through live video and
audio. You can access Breeze Meeting User Guide for Participants from the Breeze Manager
home page and from the Help menu within a Breeze Live meeting room (when you enter as a
participant).
• Using the Macromedia Breeze Presenter describes the plug-in that allows you to create Breeze
presentations from PowerPoint. You can access Using the Macromedia Breeze Presenter from the
Breeze Manager home page and from the Breeze menu in Microsoft PowerPoint by selecting
Breeze > Help.
Note: The relevance of these guides to users depends on the applications installed on the Breeze
Presentation platform, the type of user (such as meeting content manager, information technology
engineer, or course presenter), and the user’s Breeze account permissions.
Additional resources
The following list contains some useful resources that are available on the web:
The Breeze Developer Center at macromedia.com (www.macromedia.com/devnet/breeze/)
provides sample code and articles about Breeze integration.
The Web Services Primer at xml.com (http://webservices.xml.com/pub/a/ws/2001/04/04/
webservices/) is a good introduction to web services.
“Working with XML and ColdFusion” in the ColdFusion Developer’s Handbook
(www.macromedia.com/devnet/mx/coldfusion/articles/cf_handbk_ch6.html) provides
information about XML basics and creating XML code using CFML.
“Leveraging XML with ColdFusion” (www.macromedia.com/devnet/mx/coldfusion/articles/
cf_handbk_ch7.html) discusses web services, Simple Object Access Protocol (SOAP), and how to
call web services using CFML.
The XSL Transformations (XSLT) specification (www.w3.org/TR/xslt) introduces XSLT,
which you can use to convert formatted data to other formats.
Numeric Representation of Dates and Time (www.iso.ch/iso/en/prods-services/popstds/
datesandtime.html) provides information about the ISO 8601 standard date and time format.
More specifically, the W3C note about dates and times (www.w3.org/TR/NOTE-datetime)
provides information about the profile of ISO 8601 that Breeze uses.
Additional resources11
Typographical conventions
The following typographical conventions are used in this manual:
• Italic font indicates a value that should be replaced (for example, in a folder path).
• Code fontindicates code. It also indicates names of APIs, names of parameters, names of tags,
and names of attributes.
• Boldface font indicates a verbatim entry.
12Introduction: Before You Begin
CHAPTER 1
Using the Breeze XML APIs
The Macromedia Breeze XML application programming interface (API) model exposes interfaces
as a set of XML web services. These services let your external system (such as a portal application)
communicate with the Breeze server, using HTTP or HTTPS to call APIs on the server and to
receive results formatted as XML code. You can use the web services to add Breeze management
and reporting capabilities to your external system. To call the Breeze XML APIs, you can use any
language that can use XML over HTTP.
Note: Breeze doesn’t currently support Simple Object Access Protocol (SOAP).
This chapter describes the flow of data between the Breeze server and web applications and how
you set parameters and security permissions.
13
Data flow
The following diagram shows an example of the flow of data in a web application that interacts
with the Breeze server:
Web browser
Step 1: Web browser
requests page.
Step 2: Web server
finds page and
passes it to
application server.
Step 3: Application
server executes code.
Step 4: Application
server calls API on
Breeze server.
Request
<HTML>
<code>
</HTML>
Action
WEB SERVER
Application server
Response
<HTML>
<p>Hi</p>
</HTML>
XML data
Step 7: Web server
sends finished page
to requesting browser.
Step 6: Application
server inserts data in
page and then passes
the page to the web
server.
Step 5: Breeze server
returns XML data to
application server.
Breeze Server
The following example describes what might happen when a user connects to a training portal
intranet site that was created with Macromedia ColdFusion MX and that uses Breeze XML web
services:
1.
A logged-in user uses a web browser to request a page that shows a list of the courses that the
user is signed up for.
2.
The web server finds the relevant page and passes it to the application server.
3.
The application server parses and executes the ColdFusion code contained in the page.
14Chapter 1: Using the Breeze XML APIs
4.
As part of executing the code, the application server calls an API on the company’s Breeze server,
requesting the list of courses. The API call takes the form of an HTTP
5.
The Breeze server executes the API, returning the resulting XML data to the application server.
6.
The application server code parses the returned XML, inserts data into the web page as
POST request.
appropriate, and then passes the finished page to the web server.
7.
The web server passes the finished page to the browser to be displayed.
Calling an API on the server
To call an API on the Breeze server, pass the relevant parameters to the web services servlet at
http://server_name/api/xml. To call the Breeze XML APIs, you can use any language that can use
XML over HTTP.
There is one parameter that is required for all APIs: the parameter named
the name of the API. You append the
action parameter to the web services servlet URL with a
action, which specifies
query string, as follows:
http://server_name/api/xml?action=action_name
Most APIs also have other parameters. For more information about additional parameters for a
given API, see the documentation for that API in Chapter 4, “XML API Reference,” on page 41.
You can send the parameters to the server in either of the following ways:
• Create a query string—a URL that includes query parameters—and send it to the server as an
HTTP
GET or POST request, with the HTTP content type set to application/
x-www-form-urlencoded
. (When you use this approach, in most cases you don’t need to
explicitly set the content type.)
The URL to use for the query string has the form
xml?action=action_name
, with the parameters of the API appended as additional query
http://breeze.example.com/api/
parameters separated by ampersands (&).
• Create an XML object containing the parameter data as param tags contained in a params tag,
For example code demonstrating how to call an API, see Chapter 3, “Common Tasks,” on
page 27.
POST request to the server, with the HTTP content type set to text/
login API using a GET HTTP request:
Calling an API on the server15
Note: The example code in this book uses the query parameters approach, both for readability and
because of limitations in using Macromedia ColdFusion Markup Language (CFML) to send XML
objects containing parameter data. Macromedia recommends using the
Because of the way that HTTP implements GET and POST, using POST may provide higher security
levels than passing parameters in the query string. For more information, see “About security”
on page 18.
POST method when possible.
Logging in to Breeze first
To call most APIs, you must be acting as a particular logged-in user, so you must call the
API before you can call most other APIs. (You can call the following APIs without logging in:
action-list, common-info, login, and user-accounts.)
When you log in, the Breeze server returns XML results, which indicate a successful login. The
HTTP headers of those results include a cookie called
results of a
BREEZESESSION cookie in every subsequent request that you make as that logged-in user; if you
login call, save the value of that cookie. You must include the value of the
BREEZESESSION. When you receive the
don’t supply the cookie, the API fails. For examples of how to do this, see “Logging in to Breeze”
on page 29.
Your application can log in multiple users and can call APIs for any of those users. For example,
when an ordinary user is using your application, you may want to authenticate as that user and
call APIs using that user’s credentials, while also keeping an administrative user logged in to
perform tasks that require higher levels of permissions.
For more information about security in Breeze, see “About security” on page 18.
About parameters
login
For most APIs, you can specify one or more additional parameters. (The action parameter is
required. For more information, see “Calling an API on the server” on page 15.)
You usually specify parameters as name-value pairs, but the exact process depends on the details of
the language you use to call the API on the Breeze server. For sample code in ColdFusion Markup
Language (CFML), see Chapter 3, “Common Tasks,” on page 27.
In the documentation for each API, all listed parameters are required except for those that are
specifically marked as optional.
For some APIs, you can provide multiple parameters with the same name. For example, the
principals-delete API takes a parameter named principal-id; you can specify multiple
principal-id name-value pairs (each with the name principal-id) when you call the API on
the Breeze server.
The following CFML code example shows how to delete two specified users in a single API call,
by specifying two
and
loginCookie, which you would set during the login process. For more information, see
principal-id parameters. (This example relies on variables called baseurl
“Integrating Breeze with a directory service” on page 33.)
In some other APIs, you can provide multiple sets of parameters. For example, the group-
membership-update
API takes parameters named group-id, principal-id, and is-member.
To make multiple updates in a single call, you specify each of those parameters for principal and
group, and then specify them (using the same parameter names again) for another, and so on.
About principals, SCOs, and IDs
There are two basic kinds of entities in Breeze: principals and Shareable Content Objects (SCOs).
A principal is any entity that can have permissions that control how it interacts with SCOs. The
most common types of principals are user (a specific user) and group (a
There are other types of principals, known as Built-in groups: Administrators, Authors, Training
Managers, Event Managers, Meeting Hosts, and Seminar Hosts.
You can create users and groups and modify their permissions. You can add users and groups to
Built-in groups, but you can’t modify the permissions of a Built-in group. For more information
about Built-in groups, see Breeze Manager User Guide.
A SCO is a Breeze document, such as a meeting or an event; folders are also SCOs. Breeze
includes the following SCO types:
SCODescription
contentA viewable file or collection of files uploaded to the Breeze server (for example,
an FLV file, a SWF file, or an image, pod, or HTML file).
curriculumA Breeze curriculum.
eventA Breeze event.
folderA folder on the server’s hard disk that contains Breeze content.
linkA reference to another SCO. These are used by curriculums to link to other
SCOs. When content is added to a curriculum, a link is created from the
curriculum to the content.
meetingA Breeze meeting.
treeThe root of a folder hierarchy. A tree’s root is treated as an independent
hierarchy; you can’t determine the parent folder of a tree from inside the tree.
group of users).
Each principal and SCO has a unique ID number. When you call an API that uses an entity’s ID
as a parameter, the parameter name indicates what kind of entity the ID belongs to, but the ID
remains the same, regardless of the parameter name. Parameter names for IDs include
folder-id, group-id, parent-acl-id, principal-id, sco-id, and user-id.
For example, to update a user’s password, call the
as the
user-id parameter. To determine a user’s name, call the principal-info API, and give
the user’s ID as the
principal-id parameter.
user-update-pwd API, and give the user’s ID
About principals, SCOs, and IDs17
acl-id,
There are a few other kinds of IDs that aren’t associated with a principal or a SCO, such as
account-id, answer-id, permission-id, and question-id. But in most cases, a parameter
name that ends in
-id indicates that the value of the parameter is the ID of either a principal or
a SCO.
About security
The security model in Breeze ensures that any code calling a given API is authorized to do so.
Almost every API call must include a cookie that represents a specific logged-in user. For more
information, see “Logging in to Breeze first” on page 16.
For information about the possible status codes that the server can return, see the
About permissions
Permissions define the ways in which a particular principal can interact with a given SCO.
A permission mapping, indicating what permissions a particular principal has for a particular
SCO, is called an access control list or ACL. An ACL is an object that is capable of having
permission mappings between the object and a principal, but it may not have any mappings at all.
An ACL consists of three pieces of information: the ID of a SCO, principal, or account (usually
referred to in this context as an ACL ID); the ID of a principal; and a keyword that indicates what
the permissions are (usually referred to as a permission ID).
There are two kinds of permissions in Breeze: permissions associated with specific SCOs, and
permissions that belong to all users who are members of special groups that are called Built-in groups. Permissions for Built-in groups take precedence over the permissions set on a SCO.
To find out what permissions a logged-in user has for a particular item, call the
permissions-info API. To change a principal’s permissions, call the principal-update API.
status tag.
If a particular principal has no explicitly specified permissions on a particular SCO, that
principal’s permissions on the parent of the SCO apply.
18Chapter 1: Using the Breeze XML APIs
You can specify the following permissions on a SCO:
PermissionDescription
DeniedThe principal cannot view, access, or manage the SCO. You cannot specify this
Host(For meetings only) The host of a meeting. This permission lets the principal
ManageThe principal can view, delete, move, and edit the SCO. This permission also lets
PublishThe principal can publish the SCO to the server and can update the SCO. This
ViewThe principal can view the SCO but not modify it. For a course, the View
permission on meetings or courses.
create or present the meeting, even if the principal doesn’t have View permission
on the parent folder of the meeting.
The Presenter permission is now an alias for Host. A presenter in Breeze 4
presenter is a host in Breeze 5.
the principal set permissions for the SCO. For a folder, the Manage permission
lets the principal view reports for files in the folder and create new folders. You
cannot specify this permission on meetings or courses.
permission includes the View permission. It also lets the principal view reports
related to the SCO. For a folder, the Publish permission doesn’t let the principal
create new folders within the folder or set permissions for the folder. You cannot
specify this permission on meetings or courses.
permission lets the principal enroll in the course. For a meeting, the View
permission lets the principal attend the meeting. For a folder, this permission lets
the principal view the contents of the folder.
Because a group is a principal, you can set these permissions on a SCO for a custom group as well
as for an individual user; if a group has a particular permission, all members of the group have
that permission. Use the
permissions-update API to set a group’s permissions for a particular SCO.
group-membership-update API to add a member to a group. Use the
For more information about groups and permissions, see Chapter 19, “Working with Users and
Groups,” in Breeze Manager User Guide.
About security and launching content
When you launch a SCO, you must provide authentication. You can do so using any of the
following approaches:
• When you open the URL of the content, add a query parameter named session with a value
This approach is a potential security problem because anyone who obtains the specified URL
can act as the logged-in user. If you take this approach, use the cookie for an ordinary user
rather than the cookie for an administrative user.
Also, if users give the URL to someone else (for example, by copying it and pasting it into an
e-mail message), they are giving access to their account, which presents a security risk.
BREEZESESSION login cookie, as the following example shows:
About security19
• You c an s et a BREEZESESSION cookie on the user’s browser, using the value of the login cookie.
However, this approach works only if your application is running on a server with the same
domain name as the Breeze server.
Also, if your application server is a J2EE servlet environment (such as Macromedia ColdFusion
or Java), the application server might also use a cookie named
BREEZESESSION, which results
in potential conflicts between Breeze and the application server.
• You can simply open the URL, and require the user to log in again.
This approach is more secure than the others but can result in some inconvenience for users.
20Chapter 1: Using the Breeze XML APIs
CHAPTER 2
Working with Filters
The data and information in your company’s Macromedia Breeze content repository can grow
significantly over time. When this occurs, you might not want to list every item in the repository
for all users. For example, you could list the most recently created courses and the latest quarterly
financial results presentation on your company’s intranet. You need to sort and organize your
growing repository to ensure that users quickly find the information they are seeking.
Filters are the mechanism within Macromedia Breeze XML web services that you can use to
define the criteria for retrieving data from Breeze. You use one or more filters with a specific XML
API to ensure that the data your users see matches exactly what they are seeking.
About filters
You can filter for many (but not all) fields in the XML, and you can filter to include values for
that field or exclude values for that field. You can also sort the results and filter the return set to
include less results, for example, the first 25 rows that match.
Filters work with action calls to modify or organize the data that the Breeze server returns. Filters
help you select data, exclude data, and even sort the data you need to see. For example, you can
request all your courses or use a filter to select only courses that include the word “Java”; you can
list all users or select only users with the last name Smith and sort by their login name.
To use a filter, append it to an action call with an ampersand (&), as in the following:
report-my-course&filter-like-name=Java
You can string multiple filters together, each separated by an ampersand (&), as in the following:
As you can see, filters comprise a type (either filter or sort) with an optional modifier (for
example,
field name (for example,
Type-Modifier-FieldName=Value
There are two types of filters, a basic filter, which begins with the word filter, and a sort filter,
which begins with the word
achieve your desired results. For more information about sort filters, see “About sort filters”
on page 23.
like), the name of the field (for example, name), if needed, and finally, the value of the
Java). The following is the filter format:
sort. You can combine sort filters and regular filters as needed to
21
Filter examples
The following is a simple example to help illustrate the general concept of filters. The web service
API
report-my-courses returns the list of courses that you enrolled in. This same API used with
a filter on the course name, for example
report-my-courses&filter-like-name=Java,
retrieves your courses with the specified text in the name, in this case Java. If you add a sort filter
such as
your Java courses and displays the course you started first.
In these examples, there are two types of filters: filter and sort. The basic filter uses the
modifier on the
name field with a value Java. If you omit the like modifier, Breeze returns
courses with the exact name Java instead of courses with Java in the name. Using the sort filter
without a modifier on the
date-begin field with a value desc specifies a descending order.
The following table lists a few more examples that are helpful for understanding filter basics:
FilterDescription
filter-name=Goals Review
filter-like-name=Goals
filter-out-name=Status
filter-like-name=Goals &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
Returns items from the server that have the specific
name “Goals Review.” This may apply to meetings,
courses, or any items with a name field.
Returns all items with “Goals” in the name such as
“Goals Review” or “Quarterly Goals.”
Filters out or excludes any items with the word “Status”
in the name field.
Returns all items with “Goals” in the name that are no
longer active; for example, to find previous
presentations on “Goals” from previous quarters.
Returns all items with a begin date later than
May 1, 2004, sorted by name in ascending order.
Returns all items started in the month of May, 2004.
About date formatting
In Breeze, dates are a special type of field value that follow the ISO 8601 format. For example,
May 28, 2004 is expressed as
28T16:23:00.000
. Starting with the year, you can use as much of the date as you need to filter
the best result. Using a value of
2004-05-28, and 4:23 pm on May 28, 2004 is expressed 2004-05-
2004 returns all items that match the same year, which is probably
not a good use of filters. You can retrieve everything that happened in a month by specifying the
year and month. You add as much of the date as you need to select the most accurate data from
the server.
like
22Chapter 2: Working with Filters
About sort filters
You can use a filter of the type sort to sort data in ascending and descending order. For example,
the following filter sorts the
sort-name=asc
name field in ascending order:
The following code sorts the name field in descending order:
sort-name=desc
You can also perform primary and secondary sorts. For example, when calling the principal-
action to list principals, you can do a primary sort on the type field, and then a secondary
list
sort on the
name field (this way, all principals of a specific type are grouped together and sorted by
name in each group).
You can do this by specifying the following parameters:
sort1-type=asc&sort2-name=desc
Special filter scenarios
The following scenarios for filtering data vary for each action. For specific information about sort
and filter options for individual actions, see their entries in Chapter 4, “XML API Reference,” on
page 41.
Filtering data that has a type field
You can filter out or display only entries with a combination of matching types. For example, the
following filter displays only the types
filter-type=folder&filter-type=meeting
The following example shows all types except folder and meeting:
filter-out-type=folder&filter-out-type=meeting
If the type field allows a null value, you might want to filter out entries with null and non-null
values. The following example shows only types that are
filter-type=null
The following example shows only types that are not null:
filter-out-type=null
folder and meeting:
null:
Filtering data based on the date of a record
The following example shows all records whose date modified is between July 1 and July 10:
Filtering a specific number of entries starting at a specific entry
You can use the following technique to create pagination when there is too much data for one
page. The following example shows 25 records starting at the 100th record:
filter-rows=25&filter-start=100
Filtering by membership in standard groups
To filter by membership in standard groups, filter by the type field, as in the following example:
action=principal-list&filter-type=admins
Do not use the name field to filter by membership in standard groups because the group names
can be changed and are therefore unreliable. For example, the following example shows an
incorrect way to filter by group membership:
Filters comprise a type (either filter or sort) with an optional modifier, the name of the field, if
needed, and finally, the value of the field name, as the following example shows:
Type-Modifier-FieldName=Value
The following table lists all the filter types and modifiers that you can use with Breeze:
TypeModifierDescription
filter(none)
filterlike
filterout
filterrows
filterstart
filtergt
filterlt
filtergte
filterlte
sort(none)
Field must match value exactly.
Field must contain value.
Field cannot contain value.
Limits the return result to number of rows specified in value. Does not use the
field name.
Limits the return result to number of rows specified in value. Does not use the
field name.
Selects all items greater than the value. Works only with dates.
Selects all items greater than the value. Works only with dates.
Selects all items greater than or equal to the value. Works only with dates.
Selects all items less than or equal to the value. Works only with dates.
Sorts results. Value must be asc or desc.
24Chapter 2: Working with Filters
Testing code in the browser
You can enter a test URL in the address field of a browser window and see the XML response
from the server. It is a good idea to become comfortable with filters in the browser before you
write code.
There are many nuances to filters that determine which types of filters you can use with certain
API calls. The browser approach lets you quickly try combinations to see what works and what
doesn’t. If you try this outside the browser, you add the extra time of compiling, loading the result
in your application server, and debugging to see if a filter works as you expect. Using a browser,
on the other hand, is much faster and gives you immediate feedback.
For example, you could use the following URL and filter to find all courses with the word filter in
the name and the word date in the course description. This sample URL uses
breezedev.mycompany.com as the server name. Make sure you log on to the server first, and
then enter the following URL, substituting your server name for
<name>Understanding Filters Part 2</name>
<description>Second course in the series, covering important topics such
as date and range filtering.</description>
<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>
If your filters are too stringent and no courses meet your criteria, the output looks like this:
Finally, as you experiment with filters and APIs in the browser, you might get an unexpected
response. For example, if you enter the wrong filter field name, which matches some other item in
the database, you could receive an XML response that starts with the following:
To make your code production-ready, develop it to handle unexpected errors and situations.
Make sure you check for unexpected status codes and inform your IT team when you encounter
such a situation.
Where to go from here
The Macromedia Breeze Resource Center has an article called “Working with Filters” that
describes how to build a sample application that uses filters to search and sort a list of courses. In
the article, you learn how to use filters with Breeze web services by working through a simple
example that retrieves the list of enrolled courses for a user and lets the user search and sort the
list. It also explains the different ways that filters help you optimize retrieved data for use in other
enterprise systems.
26Chapter 2: Working with Filters
CHAPTER 3
Common Tasks
This chapter describes common scenarios for integrating Macromedia Breeze with external
applications or systems. These scenarios show how to accomplish several common tasks. To
perform each task, you call one or more APIs on the Breeze server and then parse the XML tags
that the server returns. In some cases, you use returned information as parameter values for the
next API.
This chapter also provides sample code demonstrating how to perform some of the tasks using
Macromedia ColdFusion Markup Language (CFML).
Note: Not all the task descriptions include sample code. The syntax for calling an API is consistent for
all APIs, so you can use the sample code from tasks that include it as models for code to perform
other tasks.
For detailed information about each API and each XML tag, see Chapter 4, “XML API
Reference,” on page 41 and Chapter 5, “XML Results Reference,” on page 139. The following
You can enter a test URL in the address field of a browser and see the XML response from the
server displayed in the browser window. The returned XML is the same as the returned XML
when you call the API in an application. You should be comfortable with calling APIs in the
browser before you write code in an application.
To call most APIs, a user must be logged in to Breeze. (The APIs you can call without logging in
are
action-list, common-info, login, and user-accounts.) A good first API to call is
action-list because a user doesn’t have to be logged in, and it returns a list of other APIs you
can call.
To call an API, you need to know the following:
• The domain of your breeze account.
For example,
breeze.yourcompany.com.
• The name of the API you want to call.
For a complete list of APIs, see “XML API Reference” on page 41.
To call a Breeze API in a browser:
1.
Open a browser.
2.
Enter the address of the Breeze server in the browser’s address bar. Append the action
parameter in a query string:
The API returns its XML results in the browser window. For example, a call to the
API returns the following XML:
list
<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>
You can also test filters in the browser. For more information, see “Testing code in the browser”
on page 25.
action-
28Chapter 3: Common Tasks
Logging in to Breeze
To call most APIs, you must be acting as a logged-in user, so you must call the login API before
you can call most other APIs. (The exceptions—APIs you can call without logging in—are
action-list, common-info, login, and user-accounts.)
When you call the
includes a
loginCookie. Then pass the loginCookie variable as a session parameter in subsequent API
BREEZESESSION cookie. Capture the cookie and save the results to a variable, such as
calls.
To log in a user to Breeze:
1.
Create a ColdFusion page with the following content:
Checks whether the username variable is defined. If
it is, the next block of code executes. If it isn’t, a
form is displayed that allows a user to provide a
user name (and password).
If the username variable is defined, sets the baseurl
variable to the name of the Breeze server. Uses the
baseurl variable in the <cfhttp> tag to call the
login API on the Breeze server. The login API
requires two parameters,
which a user enters into a form.
Dumps the data returned by the <cfhttp> call into
the
response variable. The second line converts the
string data in the
document object and stores it in the
Dumps the header information from the <cfhttp>
call into the
parses the header to pull out the value of the
BREEZESESSION cookie and store it in the
loginCookie variable.
Checks whether the status code attribute in the
XML response is
If the status code is ok, the login API call was
successful and a user is logged in. You can now
pass the
parameter to act as the logged-in user and call any
API.
This code calls the report-my-meetings API,
dumps the response into the
converts the
document object.
If the status code attribute in the login API’s XML
response was not
If FORM.username is not defined, a form is displayed
to gather a user name and password.
login and password,
response variable into an XML
xml variable.
loginHeader variable. The second line
ok.
loginCookie variable as the session
meetings variable, and
meetings variable into an XML
ok, print Login Failed.
30Chapter 3: Common Tasks
Creating a new user
To create a new user, call the principal-update API with the following parameters: first-
, last-name, login, password, has-children, and type (either user or group). The
name
following code creates a new user for the Breeze account located at
Note: For more information about the session parameter, see Logging in to Breeze.
Displaying a user’s meetings, courses, and events31
Creating a meeting
To create a meeting room, you must have appropriate permissions. When using the XML API,
you should create an administrator account with Account Administrator privileges to perform
administrator functions on a Breeze account.
To create a meeting, call the
sco-update API while logged in to the administrator account. The
To create and manage learning paths, use the following APIs: learning-path-info, learning-
path-update
, and user-transcript-update. Call learning-path-info to discover the
restrictions on a particular learning object that create the learning path (for example, which
learning objects must be completed, if any, before the next learning object is attempted). Call
learning-path-update to modify the learning path by changing the prerequisite or
preassessment requirements for a particular learning object.
Integrating Breeze with a directory service
Suppose your organization uses a central repository of user information, such as Lightweight
Directory Access Protocol (LDAP). Breeze lets you import or synchronize user information from
such a directory service.
The following procedure describes the steps that your application should follow to perform this
task. This procedure assumes that if the information provided by the directory service doesn’t
match the information provided by the Breeze server, the information from the directory service
is correct and up-to-date.
To synchronize Breeze with the directory service:
1.
Log in by calling the login API on the Breeze server, specifying the login name and password
of an account administrator. Examine the returned HTTP headers to find the value of the
BREEZESESSION cookie, which you need when calling subsequent APIs.
Note: Consider creating an administrative user specifically for performing synchronizations. If you
create such a user, you should exclude it from the list of users to synchronize when you perform the
synchronization.
The following code example logs in a user and obtains the cookie value:
<!--- No status code "ok" found. Check for other status codes and handle
errors. --->
</cfif>
3.
Request a list of Breeze users from the Breeze server by calling the principal-list API.
The server returns a complete list of all principals, including principals that aren’t users.
(For information about principals, see “About principals, SCOs, and IDs” on page 17.)
The following code calls the
principal-list API. The cookie value from the previous step is
Note: This HTTP request uses the POST
an HTTP parameter in CFML is by using POST. The URL and the query parameters remain the
same as if you were using GET, however.
4.
Make sure that the API completed successfully by parsing the returned XML to ensure that the
value of the
status tag’s code attribute is set to ok.
If your code must be robust, you should check the
method rather than GET because the only way to specify
status tag in the returned XML after every
API.
5.
If the status code is ok, search the returned list of principals to find all principals that have a
type attribute set to user.
The following example places a list of all Breeze users into the array
Obtain a list of all the users listed in the directory service.
allUsers:
The procedure for obtaining this list depends on the directory service.
7.
Compare the values contained in the login tags for the Breeze users with the e-mail addresses
from the directory service, using a list-comparison algorithm of your choice.
a
Determine which users are in the directory service but not in Breeze; these are new users to
be added to Breeze.
b
Determine which users are in Breeze but not in the directory service; these users should be
removed from Breeze.
c
Determine which users are in both Breeze and the directory service, but have different
names in the two places; these users’ names should be changed in Breeze.
34Chapter 3: Common Tasks
8.
For each user listed in the directory service but not in Breeze, add the user to Breeze, as follows:
a
Obtain the user’s first name, last name, and login name from the directory service.
The Breeze login name is usually the user’s e-mail address.
b
Call the principal-update API, setting the type parameter equal to user.
Don’t specify a
principal-id parameter; leaving out principal-id indicates that you are
adding a new user rather than updating an existing user.
c
Check the returned XML to ensure that the status code returned is ok.
The following code demonstrates how to add a user to Breeze. It uses variables set up in
previous steps of this procedure, such as
baseurl. To keep the example clear and simple, this
code specifies the user’s information in the first few lines, rather than acquiring that
information from a directory service.
<cfhttpparam type="Cookie" name="BREEZESESSION" value="#loginCookie#">
</cfhttp>
...
<!--- Add code here to check for an "ok" status code. --->
...
<cfset xml= XmlParse(cfhttp.FileContent)>
<cfset firstElement= XmlSearch(xml, "results/contact/first-name")>
<cfset firstName= firstElement[1].XmlText>
<cfset lastElement= XmlSearch(xml, "results/contact/last-name")>
<cfset lastName= lastElement[1].XmlText>
...
<!--- Add code here to set the new values for first name and last name,
call principal-update, and check for an "ok" status code. --->
Integrating Breeze with a portal
Suppose you have a portal application, such as a company’s intranet portal. You can integrate
Breeze into the portal to let users view and modify Breeze-related information from within the
context of the portal. For example, users can view upcoming Breeze meetings and see which
courses they are enrolled in.
The procedures in this section describe how to perform various tasks for a portal application
integrated with Breeze.
To log in as a particular user:
1.
Obtain the user’s login name and password, using a web-based form.
2.
Call the login API on the Breeze server, using the specified login name and password.
3.
Check the returned XML to ensure the status code returned is ok.
If the status code is
need to capture that cookie to use in subsequent API calls.
36Chapter 3: Common Tasks
ok, the response header includes a cookie called BREEZESESSION. You
To determine a user’s ID, given their login name and password:
1.
Log in as the user.
2.
Call the common-info API.
3.
Parse the returned XML to find the value of the user-id attribute of the user tag.
That value is the user’s ID.
To check whether an entered password is correct:
1.
Log in as the user.
2.
If the status code returned is ok, the password is correct.
This procedure is the only way to check a password; for security reasons, Breeze doesn’t let you
request a user’s password from the server.
To list all the courses the user is enrolled in:
1.
Log in as the user.
2.
Call the report-my-courses API.
3.
Parse the returned XML and display the results.
For more information about the returned XML, see
Note: The BREEZESESSION cookie must be supplied with this request. For more information, see
“Logging in to Breeze” on page 29.
To list all the meetings the user has signed up to attend:
1.
Log in as the user.
2.
Call the report-my-meetings API.
3.
Parse the returned XML and display the results.
For more information about the returned XML, see
my-courses on page 170.
my-meetings on page 171.
To display the contents of the user’s content folder:
1.
Log in as the user.
2.
Call the sco-shortcuts API.
This API provides the location of the root folder of the current account as well as the locations
of other folders, such as the current user’s meetings and other content.
The following code uses the same
baseurl and loginCookie variables that are set in the login
code in “Integrating Breeze with a directory service” on page 33:
To provide links to launch content items, call the sco-info API for each item, and determine
the item’s full absolute URL by appending the returned
url-path tag to the domain name you
acquired.
This results in a URL such as http://breeze.example.com/p12345678/.
For more information about launching content, see “About security and launching content”
on page 19.
To create a new meeting:
1.
Log in as the user.
2.
(Optional) Let the user determine the ID of the folder in which to create the new meeting, using
a web-based interface. If you don’t specify a folder, the meeting is created in the my-meetings
folder. You can determine the ID of the my-meetings folder by calling the
38Chapter 3: Common Tasks
sco-shortcuts API.
3.
Call the sco-updateAPI, using the folder’s ID for the folder-id parameter. Don’t specify a
sco-id parameter.
4.
Verify that the API completed successfully by checking the returned status tag.
To search for content:
1.
Obtain the string to search for from the user, using a web-based form.
2.
Log in as the user.
3.
Call the sco-search API, using the specified string as the value of the query parameter.
4.
Parse the returned XML to find information about the SCOs that contain the string; display
the relevant information to the user.
Generating reports
Suppose you want your application to provide information about all the courses a user is
registered for or to identify the users who registered for a given meeting. The Breeze XML web
services include a variety of reports, each of which provides data on Breeze use.
Report data is returned in XML form. You can use the results in your system, such as a web
application, or you can convert the data into other file formats, such as comma separated value
(CSV) files.
To generate a learner status report as a CSV file:
1.
Log in as an administrator.
2.
Call the sco-contents API to determine the ID of a course.
3.
Call the report-quiz-takers API.
This API returns a set of
for the course.
4.
Parse the XML and write the data as text, with commas separating the fields, to a CSV file.
The most common approach shows the resulting CSV file as text in the user’s browser, which
lets the user save the file to their local disk.
You can use a server language such as CFML to translate the file to CSV, or you can use a
transformation language such as XSL Transformations (XSLT). For information about XSLT,
see “Additional resources” on page 11.
row tags, each providing information about a user who is signed up
Generating reports39
40Chapter 3: Common Tasks
CHAPTER 4
XML API Reference
This chapter provides reference material for each application programming interface (API) that is
exposed in the Macromedia Breeze XML API, including information about the parameters that
you can pass with each API. The APIs are listed in alphabetical order.
Every API returns a
The “Returned elements” section of the documentation for each API lists only the other elements
returned;
For information about the XML tags, data, and status codes returned by the Breeze server, see
Chapter 5, “XML Results Reference,” on page 139.
For examples of how to perform various common tasks, see Chapter 3, “Common Tasks,” on
page 27.
For information about specifying parameters, see “About parameters” on page 16. For
information about principals and Shareable Content Objects (SCOs), see “About principals,
SCOs, and IDs” on page 17.
results and status are assumed.
results tag that contains one or more other tags, including a status tag.
Sample API entry
The following sample entry explains the conventions that are used for all XML APIs. Entries are
listed alphabetically.
Entry title
This is the heading that names the API.
Availability
Unless otherwise noted, this section tells which versions of Breeze support the API. An API is
supported by the specified version and all later versions, unless otherwise indicated.
Description
This section describes how to use the API.
41
Parameters
This section describes any parameters listed in the syntax. All parameters are required unless they
are marked “optional.”
Filters
This section describes fields on which you can filter and sort the returned XML data.
Returned elements
This section identifies what, if any, XML elements the API returns.
Sample results
This section provides a code sample that demonstrates how to use the API.
See also
This section identifies APIs that are related to the API.
API listing by function
The following tables group the XML APIs according to function.
Content and meeting management
You can use the Breeze web services to create and manage Breeze assets and meetings (SCOs) from
any application, such as an external portal, that consumes web services. For example, you can
upload content from an external portal application into Breeze. You can also create new meeting
or collaboration sessions from a portal application.
The following table lists the content and meeting management APIs supported in Breeze 5:
APIDescription
sco-buildCauses the Breeze server to build the specified SCO when
you create presentations with the XML API.
sco-contentsProvides a list of the SCOs in a specified folder.
sco-deleteDeletes one or more SCOs.
sco-expanded-contentsLists all of the SCOs in a folder.
sco-infoProvides information about a SCO.
sco-moveMoves a SCO from one folder to another.
sco-navDescribes the folder hierarchy that contains the specified
SCO.
sco-searchProvides a list of all SCOs that match the search text.
sco-shortcutsProvides IDs for a set of folders that contain content relevant
to the logged-in user: a folder where the user can place
meetings, a folder where the user can place content, and so
on.
42Chapter 4: XML API Reference
APIDescription
sco-updateCreates or updates presentations, courses, and meetings.
sco-uploadUploads a file to the Breeze server when you create a
presentation with the XML API. (For more information, see
sco-update and sco-build).
Curriculum and learning path management
You can use the Breeze web services to create and manage learning paths associated with a
curriculum and a user.
The following table lists the curriculum APIs supported in Breeze 5:
APIDescription
learning-path-infoReturns a list of learning paths for a learning object that
belongs to a curriculum.
learning-path-updateUpdates the learning path for a single learning object in a
user-transcript-updateResets a user's transcript for a learning object or marks it as
curriculum.
complete.
Custom fields
You can use custom fields to add fields to Breeze objects. The following table lists the custom
fields APIs supported in Breeze 5:
APIDescription
acl-field-infoReturns field-ids and values for an ACL.
acl-field-listReturns the list of acl-ids and values in the logged-in account
for the given field-id.
acl-field-updateUpdates the field value for the given ACL and field.
acl-preference-updateUpdates the user profile to the specified language and time
zone settings.
custom-fields-deleteDeletes the specified account custom field.
General
The following table lists the general APIs supported in Breeze 5.:
APIDescription
action-listReturns a list of Breeze web service APIs.
common-infoProvides basic information about the current user and server.
API listing by function43
APIDescription
loginLogs in a user.
logoutLogs out a user, invalidating the cookie that the application
received when the user logged in.
Permissions
The following table lists the permissions APIs supported in Breeze 5:
APIDescription
permissions-infoProvides information about principals and the permissions
they have for a specified SCO.
permissions-resetResets all principals’ permissions for the specified SCO, so
permissions-updateUpdates one or more principal’s permissions for one or more
that the permissions of the SCO’s parent apply to all
principals.
SCOs.
Reports
You can use the detailed reporting capabilities of the Breeze web services in external systems such
as employee performance management solutions. The following Breeze web service APIs allow
you to integrate the Breeze reporting repository with external systems for real-time reporting that
uses a single reporting infrastructure.
The following table lists the reports APIs supported in Breeze 5:
APIDescription
report-active-meeting-presenters Provides a list of the users who are currently presenting
meetings.
report-active-meetingsProvides a list of meetings that are currently in progress.
report-bulk-consolidatedtransactions
report-bulk-objectsReturns information about every object on the Breeze server.
report-bulk-questionsReturns information about every quiz question in a particular
report-bulk-slide-viewsReturns information about every instance of a principal
report-bulk-usersReturns information about all the users in an account.
report-course-statusReturns course status for either a principal or a SCO, based
44Chapter 4: XML API Reference
Returns information about all the transactions in an account.
A transaction is an instance of one principal visiting one SCO.
Object types include archive, attachment, authorware,
captivate, course, curriculum, external-event, FLV, image,
meeting, presentation, and SWF.
account.
viewing a slide in an account.
on the parameters passed in.
APIDescription
report-meeting-attendanceProvides a list of users who have attended the specified
meeting.
report-meeting-concurrent-usersIndicates the maximum number of users who can participate
simultaneously in the specified meeting.
report-meeting-sessionsProvides information about all the sessions of a meeting.
report-meeting-summaryIndicates how many users were invited to the specified
meeting and how many invitees and guests attended.
report-my-coursesProvides information about each course in which the logged-
in user is enrolled.
report-my-eventsProvides information about each event the logged-in user is
scheduled to attend.
report-my-meetingsProvides information about each meeting the logged-in user
is scheduled to attend.
report-quiz-interactionsProvides information about all the interactions that users have
had with the specified quiz.
report-quiz-question-answerdistribution
report-quiz-question-distribution Indicates how many users answered each question in the
Indicates how many users selected a specific answer for all
questions on a quiz associated with the specified SCO.
specified quiz correctly.
report-quiz-question-responseProvides a list of all answers that users have given to a
particular quiz question.
report-quiz-question-totalsFor the specified quiz question, indicates the total number of
users who answered the question and the number of users
who answered the question correctly.
report-quiz-summaryProvides information about the results of a quiz.
report-quiz-takersProvides information about everyone who has taken a
particular quiz.
report-quotasReturns information about the account quotas.
report-sco-slidesIndicates how many times, and how recently, each slide in a
presentation has been viewed.
report-sco-viewsIndicates how many times, and how recently, the specified
presentation has been viewed.
User management
Breeze provides a complete set of web services that allow you to develop synchronization processes
between your directory service and Breeze. Additionally, these web services allow you to integrate
user profiles, personalized Breeze content, and reporting data in external systems such as portal,
CRM, and ERP applications.
API listing by function45
The following table lists the user management APIs supported in Breeze 5:
APIDescription
group-membership-updateAdds one or more principals to a group, or removes one or
more principals from a group.
principal-infoProvides information about the specified principal. The
specified principal can be a user or a group.
principal-listProvides a complete list of users and groups, including
primary groups.
principal-list-by-fieldAllows you to list principals that have a given field value.
principal-updateUpdates information for a principal in the current account or
creates a new principal.
principals-deleteDeletes one or more principals.
user-accountsProvides a list of the accounts to which the specified user
belongs.
user-update-pwdChanges a user’s password.
Alphabetical API listing
The following list contains all of the APIs that are documented in this reference chapter. APIs that
Breeze 5 does not support are indicated in the Description column.
APIDescription
accesskey-execExecutes special functions associated with special access
keys. This API is not supported in Breeze 5.
accesskey-infoProvides a special access key, if such a key is associated with
acl-field-infoReturns field-ids and values for an ACL.
acl-field-listReturns the list of acl-ids and values in the logged-in account
acl-field-updateUpdates the field value for the given ACL and field.
acl-preference-updateUpdates the user profile to the specified language and time
action-listReturns a list of Breeze web service APIs.
common-infoProvides basic information about the current user and server.
custom-field-updateUpdates the specified account custom field. Creates a new
custom-fieldsLists the custom fields of an account and the details of the
custom-fields-deleteDeletes the specified account custom field.
the specified SCO. This API is not supported in Breeze 5
for the given field-id.
zone settings.
custom field if none exists. This API is not supported in
Breeze 5.
fields. This API is not supported in Breeze 5.
46Chapter 4: XML API Reference
APIDescription
group-membership-updateAdds one or more principals to a group, or removes one or
more principals from a group.
learning-path-infoReturns a list of learning paths for a learning object that
belongs to a curriculum.
learning-path-updateUpdates the learning path for a single learning object in a
curriculum.
loginLogs in a user.
logoutLogs out a user, invalidating the cookie that the application
received when the user logged in.
permissions-infoProvides information about principals and the permissions
they have for a specified SCO.
permissions-resetResets all principals’ permissions for the specified SCO, so
that the permissions of the SCO’s parent apply to all
principals.
permissions-updateUpdates one or more principals’ permissions for one or more
SCOs.
principal-infoProvides information about the specified principal. The
specified principal can be a user or a group.
principal-listProvides a complete list of users and groups, including
primary groups.
principal-list-by-fieldAllows you to list principals that have a given field value.
principal-updateUpdates information for a principal in the current account or
creates a new principal.
principals-deleteDeletes one or more principals.
report-account-meeting-attendance Returns the meeting attendance log for the account. This API
is not supported in Breeze 5
report-active-meeting-presenters Provides a list of the users who are currently presenting
meetings.
report-active-meetingsProvides a list of meetings that are currently in progress.
report-bandwidthIndicates the total bandwidth consumed in the current
account since the account was created, in bytes. This API is
not supported in Breeze 5.
report-bulk-consolidatedtransactions
report-bulk-content-quizReturns information about all content quizzes, including a list
Returns information about all the transactions in an account.
A transaction is an instance of one principal visiting one SCO.
of quizzes, and the questions and answers for each quiz. This
API is not supported in Breeze 5.
report-bulk-content-quiz-results Returns results for a content quiz, including information on
each user and quiz question. This API is not supported in
Breeze 5.
Alphabetical API listing47
APIDescription
report-bulk-content-slide-viewsReturns slide view data for content. This API is not supported
in Breeze 5.
report-bulk-course-quizReturns information about all course quizzes, including a list
of quizzes, and the questions and answers for each quiz. This
API is not supported in Breeze 5.
report-bulk-course-resultsReturns results for a course quiz, including information about
each user and quiz question. This API is not supported in
Breeze 5.
report-bulk-meetingReturns information about all meetings. This API is not
supported in Breeze 5.
report-bulk-meeting-attendanceReturns meeting attendance data. This API is not supported
in Breeze 5.
report-bulk-objectsReturns information about every object on the Breeze server.
Object types include archive, attachment, authorware,
captivate, course, curriculum, external-event, FLV, image,
meeting, presentation, and SWF.
report-bulk-questionsReturns information about every quiz question in a particular
account.
report-bulk-slide-viewsReturns information about every instance of a principal
viewing a slide in an account.
report-bulk-usersReturns information about all users in an account.
report-course-statusReturns course status for either a principal or a SCO, based
on the parameters passed in.
report-course-takersProvides a list of the users enrolled in the specified course.
This API is not supported in Breeze 5.
report-disk-usageProvides information about how much hard disk space the
Breeze content for the current account uses, in bytes. This
API is not supported in Breeze 5.
report-meeting-attendanceProvides a list of users who have attended the specified
meeting.
report-meeting-concurrent-usersIndicates the maximum number of users who can participate
simultaneously in the specified meeting.
report-meeting-sessionProvides information about a specific meeting session, such
as the session name, session starting and ending times, and
the number of participants and guests who attended the
session. This API is not supported in Breeze 5.
report-meeting-sessionsProvides information about all the sessions of a meeting.
report-meeting-session-slotsProvides information about the number of attendees in every
ten-minute time slot of the specified meeting session. This
API is not supported in Breeze 5.
report-meeting-summaryIndicates how many users were invited to the specified
meeting and how many invitees and guests attended.
48Chapter 4: XML API Reference
APIDescription
report-my-coursesProvides information about each course in which the logged-
in user is enrolled.
report-my-eventsProvides information about each event that the logged-in
user is scheduled to attend.
report-my-meetingsProvides information about each meeting that the logged-in
user is scheduled to attend.
report-principal-listReturns the list of all principals in the account. This API is not
supported in Breeze 5.
report-quiz-answer-distributionIndicates how many users selected a specific answer for all
questions on a quiz associated with the specified SCO.
This API is not supported in Breeze 5.
report-quiz-definition-answersProvides information about each of the allowed answers
(both correct and incorrect) for the specified quiz. This API is
not supported in Breeze 5.
report-quiz-definition-questions Provides information about each question in a quiz. This API
is not supported in Breeze 5.
report-quiz-interactionsProvides information about all the interactions that users have
had with the specified quiz.
report-quiz-question-answerdistribution
report-quiz-question-distribution Indicates how many users answered each question in the
Indicates how many users selected a specific answer for all
questions on a quiz associated with the specified SCO.
specified quiz correctly.
report-quiz-question-responseProvides a list of all answers that users have given to a
particular quiz question.
report-quiz-question-totalsIndicates, for the specified quiz question, the total number of
users who answered the question and the number of users
who answered the question correctly.
report-quiz-summaryProvides information about the results of a quiz.
report-quiz-takersProvides information about everyone who has taken a
particular quiz.
report-quotasReturns information about the account quotas.
report-sco-slidesIndicates how many times, and how recently, each slide in a
presentation has been viewed.
report-sco-viewsIndicates how many times, and how recently, the specified
presentation has been viewed.
report-survey-question-responseReturns the list of all users who answered the specified
question and their answer. This API is not supported in
Breeze 5.
sco-buildCauses the Breeze server to build the specified SCO when
you create presentations with the XML API.
sco-contentsProvides a list of the SCOs in a specified folder.
Alphabetical API listing49
APIDescription
sco-deleteDeletes one or more SCOs.
sco-expanded-contentsLists all of the SCOs in an account. Call this API with filters to
find particular SCOs.
sco-infoProvides information about a SCO.
sco-moveMoves a SCO from one folder to another.
sco-navDescribes the folder hierarchy that contains the specified
SCO.
sco-searchProvides a list of all SCOs that match the search text.
sco-shortcutsProvides IDs for a set of folders that contain content relevant
to the logged-in user: a folder for the user to place meetings, a
folder for the user to place content, and so on.
sco-updateCreates or updates presentations, courses, and meetings.
sco-uploadUploads a file to the Breeze server when creating a
user-accountsProvides a list of the accounts to which the specified user
user-transcript-updateResets a user's transcript for a learning object or marks it as
user-update-pwdChanges a user’s password.
presentation using the XML API. (For more information, see
sco-update and sco-build).
belongs.
complete.
API reference entries
The following section lists the Breeze XML APIs alphabetically
accesskey-exec
Availability
Breeze 4. This API is not supported in Breeze 5.
Note: An updated API is not available because the self-registration feature no longer exists in
Breeze 5.
Description
Executes special functions associated with special access keys.
You can call this API to do the following:
• Allow users to self-register for meetings and courses
• Create a new user
50Chapter 4: XML API Reference
To c a l l t h e accesskey-exec API, you need a special access key associated with a meeting or
course. Someone who isn’t a Breeze user can be given the special access key and can then use an
interface to register for the meeting or course, creating a Breeze user account in the process. To
obtain the special access key, call
accesskey-info. This API automatically adds the self-
registering user to the self-registration group associated with the course or meeting, if the group
exists.
The difference between using
that you can call
accesskey-exec without being logged in or being an administrator. Also, you
can specify custom fields for new users when you call
fields to
accesskey-exec as additional parameters in name and value pairs, as shown in the
accesskey-exec and principal-update to create a new user is
accesskey-exec. To do so, pass the custom
following example:
field-id=xx&value=xxx&customfield-id=xx&value=xxx
The field-id parameters can be determined from the data returned by the custom-fields API.
Parameters
access-key
first-name The new user’s first name.
has-children Always set this parameter to 0 when registering a new user.
last-name The new user’s last name.
login The new user’s login name, which is usually the user’s e-mail address.
password The new user’s password.
type Always set this parameter to user when registering a new user.
The special access key that lets the user self-register.
Filters
Results cannot be filtered or sorted.
Returned elements
None.
Sample results
<results>
<status code="ok" />
</results>
accesskey-info
Availability
Breeze 4. This API is not supported in Breeze 5.
Note: The accesskey feature no longer exists in Breeze 5, so there is no updated API.
Description
Provides a special access key, if such a key is associated with the specified SCO. For more
information, see the
accesskey-exec API.
accesskey-info51
To find out which group the user will automatically join by self-registering using the special access
key, look in the
the returned XML. If the group does not exist, there is no additional
access-key-group XML element. If the group exists, this element is included in
access-key-group
element.
Parameters
acl-id
The ID of a SCO.
Filters
Results cannot be filtered or sorted.
Returned elements
access-keys
Sample results
, access-key-group
The following sample XML is returned when a group doesn’t exist and therefore does not include
an
Returns field-ids and values for an ACL. The caller must have view permission for the ACL.
You can call
An ACL is a securable Breeze object, for example, a principal, SCO, or account. For more
information, see “About principals, SCOs, and IDs” on page 17.
Parameters
acl-id
a
sco-id, an account-id, or a principal-id.
Filters
Results cannot be filtered or sorted.
Returned elements
acl-fields
Sample results
The following sample results were returned when the acl-id parameter was an account-id.
Some fields in the account ACL list the main account contact; in this case, Mike Brown. The
other fields identify the company associated with the account. The fields are specified at account
creation time and stored in an ACL field.
Returns the list of acl-ids and values in the logged-in account for the given field-id. For
example, to list the first names of all users in an account, call this API with
. This API requires Administrator permission on the logged-in account.
name
Call
acl-field-info to determine the possible fields for an ACL.
An ACL is a securable Breeze object, for example, a principal, SCO, or account. For more
information, see “About principals, SCOs, and IDs” on page 17.
Parameters
field-id
The ID of the field whose values you want to list.
Updates the field value for the given ACL and field. The caller requires modify permission on the
ACL.
An ACL is a securable Breeze object, for example, a principal, SCO, or account. For more
information, see “About principals, SCOs, and IDs” on page 17.
Parameters
acl-id
The ID of the ACL that you want to modify. This can be a principal-id, sco-id, or
account-id.
field-id The ID of the field that you want to edit.
value The value that you want to set for the field specified by the field-id parameter.
Filters
Results cannot be sorted or filtered.
Returned elements
None.
Sample results
The following call updates the first name of the user with ACL ID 38140560 (call acl-field-
field-id The ID of the field to be deleted (call the custom-fields API to obtain the ID).
Returned elements
None.
Filters
Results cannot be filtered or sorted.
Sample results
<results>
<status code="ok" />
</results>
62Chapter 4: XML API Reference
See also
acl-field-info
, acl-field-list, acl-field-update
group-membership-update
Availability
Breeze 4.
Description
Adds one or more principals to a group, or removes one or more principals from a group.
To update multiple principals and groups, specify multiple trios of
and
is-member parameters. For more information, see “About parameters” on page 16.
Parameters
group-id
principal-id The ID of the principal whose membership status you want to update.
is-member Indicates whether the principal is added to (true) or deleted from (false) the
The ID of the group for which you are updating the membership.
group.
Filters
Results cannot be filtered or sorted.
Returned elements
None.
group-id, principal-id,
Sample results
<results>
<status code="ok" />
</results>
learning-path-info
Availability
Breeze 5.
Description
Returns a list of learning paths for a learning object that belongs to a curriculum. A learning
object is any SCO that has been added to a curriculum. A learning path is determined by rules
that establish whether a student can proceed to the next learning object or not. For example, you
can create a learning path by establishing prerequisite requirements, completion requirements, or
preassessment requirements.
Note: A call to the learning-path-info API describes the relationship between SCOs within a
curriculum; it does not list the complete contents of a curriculum. To see the contents of a curriculum,
call
sco-expanded-contents.
learning-path-info63
Parameters
curriculum-id
sco-id The ID of the learning object.
Filters
The ID of the curriculum to which this learning object belongs.
The following table lists the fields on which the data can be filtered and sorted:
FieldFilter/Sort
current-sco-id
curriculum-id
name
path-type
permission-id
target-sco-id
The
target-sco-id field contains the ID of the learning object that restricts access to the
Filter and sort
Filter and sort
Filter and sort
Filter and sort
Filter and sort
Filter and sort
current learning object. For example, if a learning object has a prerequisite requirement, the
prerequisite SCO would be the
The
path-type field has the following possible values:
target-sco-id.
• completion-none
• completion-required
• preass-blocked
• preass-hidden
• preass-none
• prereq-hidden
• prereq-none
• preass-optional
• prereq-required
• prereq-suggested
Returned elements
learning-paths
Sample results
To understand the XML results, consider the following reading of the first learning-path tag.
The current SCO (5400246) has a completion requirement. The completion requirement is
target SCO (5400247). The target SCOs name is New Hire Safety.
Updates the learning path for a single learning object in a curriculum. A learning object is any
SCO that is added to a curriculum.
Parameters
curriculum-id The ID of the curriculum to which this learning object belongs.
current-sco-id The ID of the learning object.
target-sco-id The ID of the learning object that restricts access to the current learning
object. For example, if a learning object has a prerequisite requirement, the prerequisite SCO
would be the
target-sco-id.
learning-path-update65
target-sco-id The ID of the learning object that restricts access to the current learning
object. For example, if a learning object has a prerequisite requirement, the prerequisite SCO is
the
target-sco-id.
Consider the following scenario: a student must pass the “Intro to Programming” class before
taking the “Intermediate Programming” class. In this example, “Intermediate Programming”
would be represented by the
prereq-req and the target-sco-id would be “Intro to Programming.”
path-type The path-type field has the following possible values:
current-sco-id attribute, the path-type attribute would be
• completion-none
• completion-required
• preass-blocked
• preass-hidden
• preass-none
• prereq-hidden
• prereq-none
• preass-optional
• prereq-required
• prereq-suggested
Filters
The results cannot be sorted or filtered.
Returned elements
None.
Sample results
<results>
<status code="ok"/>
</results>
See also
learning-path-info
login
Availability
Breeze 4.
Description
Logs in a user to a Breeze server.
After logging in, you must read and store the cookie called
in the HTTP headers of the XML results. You must then include the value of that cookie in every
subsequent request that you make as that logged-in user.
66Chapter 4: XML API Reference
BREEZESESSION, which can be found
The following Java example parses the HTTP headers to store the cookie, and then indicates how
it can be passed on for all subsequent requests:
The preceding example sets the password and username variables manually. In a real application,
you would probably create a form that collected the password and username and passed the
variables to the code.
For a ColdFusion example, see “Logging in to Breeze” on page 29.
Parameters
account-id The ID of the account with which the user is associated. This parameter is
optional. If your organization has only one account, don’t specify an
login The user’s login name, which is usually the user’s e-mail address.
password The user’s password.
Note: If the login or password parameter is missing or incorrect, the Breeze server returns a status
code of
no-data.
Filters
account-id.
Results cannot be filtered or sorted.
login67
Returned elements
None.
Sample results
<results>
<status code="ok" />
</results>
See also
logout
logout
Availability
Breeze 4.
Description
Logs out a user, invalidating the cookie that the application received when the user logged in.
Parameters
None.
Filters
Results cannot be filtered or sorted.
Returned elements
None.
Sample results
<results>
<status code="ok" />
</results>
See also
login
permissions-info
Availability
Breeze 4.
Description
Provides information about principals and the permissions they have for a specified SCO. You can
also pass an optional
principal.
To determine the ID to use as the
(possibly with a filter to limit the returned data).
68Chapter 4: XML API Reference
principal-id parameter to retrieve permission information about a specific
principal-id parameter, call the principal-list API
For more information about permissions, see “About permissions” on page 18.
For more information about filters, see Chapter 2, “Working with Filters,” on page 21.
Parameters
acl-id
The ID of a specific SCO.
principal-id The ID of a specific principal. This parameter is optional.
Filters
The following table lists the fields on which the data can be filtered and sorted:
FieldFilter/Sort
description
has-children
is-primary
login
name
permission-id
type
Note: The logged-in-access and public-access fields are always returned in the data set, regardless
of the filter restrictions.
Filter and sort
Filter and sort
Filter and sort
Filter and sort
Filter and sort
Filter and sort
Filter and sort
For more information about filtering and sorting, see Chapter 2, “Working with Filters,” on
page 21.
Returned elements
permissions
Sample results
The following XML data is returned when the principal-id parameter is not passed and
contains information about all principals:
When the type attribute of the principal element is user, additional data about the user
contact information, user profile, and custom fields for the user is returned, as shown in the
following XML data:
Updates information for a principal in the current account or creates a new principal. For
information about principals, see “About principals, SCOs, and IDs” on page 17.
In most cases, you must acquire the original version of the principal’s information (using
principal-info) before calling the principal-update API.
To create a new principal, call the
parameter. If you create a new principal, the returned XML provides information about the new
principal, including the principal’s ID.
In Breeze 4, the
must call
Parameters
description
first-name The new first name to assign to the user. Use only when creating or updating a
principal-update API allowed you to update custom fields. In Breeze 5, you
acl-field-update to update fields.
The new group’s description. Use only when creating a new group.
user.
has-children Indicates whether the principal has children. If the principal is a group, set this
parameter to 1. If the principal is a user, set this parameter to 0.
principal-update API without specifying a principal-id
last-name The new last name to assign to the user. Use only when creating or updating a user.
login The principal’s new login name, which is usually the principal’s e-mail address. This
parameter must be specified only when creating or updating a user.
name The new group’s name. Use only when creating a new group.
password The new user’s password. Use only when creating a new user.
principal-id The ID of the principal for which you are changing data. If you omit this
parameter, the
type The type of the new principal. Use only when creating a new principal. For information
principal-update API creates a new principal.
about the available types, see “About principals, SCOs, and IDs” on page 17.
Filters
Results cannot be filtered or sorted.
principal-update75
Returned elements
If you update an existing principal, no elements are returned.
If you create a new principal,
for
principal-info).
Sample results
principal is returned (in the same format as the returned elements
The following sample results are for creating a new principal:
Returns information about all of the transactions in an account. A transaction is an instance of
one principal visiting one SCO. Consider the following examples:
• If a principal attends a meeting twice, there are two transactions for that principal: one for each
time that she attended the meeting.
• If five people attend a meeting, there are five transactions for that meeting SCO: one for each
user who attended the meeting.
• If a principal takes two courses three times and passes each only on the third try, there are six
transactions for the principal between the two courses: one for each attempt on each course.
Parameters
None.
Filters
The following table lists the fields on which the data can be filtered and sorted:
Returns information about all quizzes, including a list of quizzes, and the questions and answers
for each quiz. The information returned is similar to the “Content Quiz Information” download
report, except that XML data is returned instead of CSV-formatted data.
number="1" question-value="10" answer-id="1">
<presentation-name>test-quiz</presentation-name>
<quiz-name>Quiz test 1</quiz-name>
<question-text>Who is Randy Johnson ?</question-text>
<answer-text>A baseball pitcher with the Arizona Diamondbacks</answer-
number="1" question-value="10" answer-id="2">
<presentation-name>test-quiz</presentation-name>
<quiz-name>Quiz test 1</quiz-name>
<question-text>Who is Randy Johnson ?</question-text>
<answer-text>A basketball player with the New Jersey Nets</answer-text>
<answer-correct>NO</answer-correct>
</row>
</report-bulk-content-quiz>
</results>
Returns results for a content quiz, including information about each user and quiz question. The
returned information is similar to the “Content Quiz Responses and Results” download report,
except that the
report-bulk-quiz-results API returns XML data instead of CSV-formatted
data.
Caution: There was an issue with the formatting of the time-taken XML tag, which has been fixed in
the Breeze 4.1 updater. If you see incorrect formatting in the content of a
download the updater from the Licensed Support Center.
Parameters
time-taken XML tag,
None.
82Chapter 4: XML API Reference
Filters
The following table lists the fields on which the data can be filtered and sorted:
Returns slide view data for content. This is similar to the “Content Slide Views” download report,
except that the API returns XML data and the report returns CSV-formatted data.
report-bulk-slide-views API.
report-bulk-content-slide-views83
Parameters
None.
Filters
The following table lists the fields on which the data can be filtered and sorted:
Returns information about all course quizzes, including a list of quizzes, and the questions and
answers for each quiz. The returned results are similar to the “Course Quiz Information” report,
except that the API returns XML data and the report contains downloadable CSV-formatted
data.
<presentation-name>quiz-course-ln</presentation-name>
<quiz-name>Quiz test 1</quiz-name>
<question-text>Who is Randy Johnson ?</question-text>
<answer-text>A baseball pitcher with the Arizona Diamondbacks</answer-
<presentation-name>quiz-course-ln</presentation-name>
<quiz-name>Quiz test 1</quiz-name>
<question-text>Who is Randy Johnson ?</question-text>
<answer-text>A basketball player with the New Jersey Nets</answer-text>
<answer-correct>NO</answer-correct>
</row>
</report-bulk-course-quiz>
</results>
report-bulk-course-quiz85
report-bulk-course-results
Availability
Breeze 4. This API is not supported in Breeze 5.
This API was replaced by the
Description
Returns results for a course quiz, including information on each user and quiz question. The
returned data is similar to the “Course Quiz Responses and Results” report, except that the API
returns XML data and the report returns CSV-formatted data.
Parameters
None.
Filters
The following table lists the fields on which the data can be filtered and sorted:
Caution: There was an issue with the formatting of the
the Breeze 4.1 updater. If you see incorrect formatting in the content of a
download the updater from the Licensed Support Center.
Returns information about all meetings. Similar to the Meeting Information report, except that
the API returns XML data and the report returns CSV-formatted data.
Parameters
None.
report-bulk-objects API and filter on the type field, as in the
Returns meeting attendance data. The results are similar to the “Meeting Attendance” report,
except that the API returns XML data and the report returns downloadable CSV-formatted data.
Parameters
None.
Filters
The following table lists the fields on which the data can be filtered and sorted:
Returns information about every object on the Breeze server. Object types include archive,
attachment, authorware, captivate, course, curriculum, external-event, FLV, image, meeting,
presentation, and SWF.
Use filters to limit the returned XML. For example, to return a list of all the meetings in an
account, filter on the
The following table lists the fields on which the data can be filtered and sorted:
FieldFilter/Sort
date-modified
name
type
url
type field, as in the following example:
Filer and sort
Filter and sort
Filter and sort
Filter and sort
Caution: In Breeze 5, you can’t filter the type field for a specific value; you must use the like modifier.
For example, in the following code, the first line throws an exception, but the second line executes
correctly:
Returns information about all users in an account. Remember to use filters to limit your results.
For example, the following call returns in ascending order all users who have the letters “Jo” in
their name:
The following table lists the fields on which the data can be filtered and sorted:
FieldFilter/Sort
email
login
manager
name
principal-id
type
Filter and sort
Filter and sort
Filter and sort
Filter and sort
Filter and sort
Filter and sort
Caution: In Breeze 5, you can’t filter the type field for a specific value; you must use the like modifier.
For example, in the following code the first line throws an exception, but the second line executes
correctly:
In Breeze 5 you can call the
return data for a specific meeting session.
Description
Provides information about a specific meeting session, such as the session name, session starting
and ending times, and the number of participants and guests who attended the session.
Each time someone enters an otherwise empty meeting, a new session starts. The session ends
when all attendees leave the meeting. If someone later enters the now-empty meeting, a new
session starts.
98Chapter 4: XML API Reference
report-meeting-sessions API and filter on the asset-id field to
Parameters
sco-id
The ID of a meeting. This value must match the sco-id for a specific meeting session.
To obtain the list of all sessions and their associated
Provides information about all the sessions of a meeting. Each time someone enters an otherwise
empty meeting, a new session starts. The session ends when all attendees leave the meeting. If
someone later enters the now-empty meeting, a new session starts.
Parameters
sco-id The ID of a meeting.
Filters
The following table lists the fields on which the data can be filtered and sorted:
FieldFilter/Sort
asset-id
date-created
date-end
Filter and sort
Filter and sort
Filter and sort
report-meeting-sessions99
FieldFilter/Sort
num-participants
sco-id
Sort
Filter and sort
For more information about filtering and sorting, see Chapter 2, “Working with Filters,” on