Overview

The Impression Packager is a standalone utility that provides enhanced capabilities when packaging Impression content. These capabilities include:

  • Storing and using multiple package settings (called Packaging Profiles) within a content database.
  • Packaging multiple lessons in a single operation.
  • Generating .ZIP files from packaged lessons.
  • Packaging multiple lessons into a single SCORM package, with a single "unified" manifest file.
  • Generating multi-SCO manifest files that support SCORM Simple Sequencing, including forced sequential ordering and pretest/posttest rollup.

This revision of the Impression Packager was released on 7 September 2017, and includes the following changes:

  • Fixed a problem where, in some cases, properties were incorrectly optimized out of the lesson XML if the property name differed only by case.

Installation and Requirements

The Impression Packager requires the Microsoft .Net Framework 4 Client Profile. This is automatically installed on most machines via Windows Update. To install the packager, copy the files from the .ZIP archive to a location on your computer. There is no setup program.


Basic Usage

To use the packager, perform the following steps:

  • Select a content database
  • Select one or more lessons to package
  • Choose a packaging profile, package type, and location
  • Select packaging options and notifications
  • Package

Selecting a Content Database

Use the links at the top of the main Packager window to select a content database.

The Impression Packager works with both SQL Server-hosted and .MDB-format content databases. If the CCT is installed on the computer, and a database has not been selected through the packager application, the CCT's most recently used (MRU) content database settings are used. Once a database has been selected through the packager application, the CCT's MRU settings will be ignored.

Selecting Lessons to Package

Once a database has been opened, the lessons available for packaging will be shown in the treeview on the left side of the main window. Lessons selected for packaging will have a checkmark next to the lesson icon. Selecting a group or the top-level content database node will select (or deselect) the children of the node; hold down the CTRL key while clicking on the node to toggle that node only.

Note Although lessons, groups and the content database itself can be selected, only lessons will be packaged.
Modify Course Map

When creating a package with multiple lessons, you may wish to change the default ordering of the lessons. To do this, chose the Modify Course Map link below the treeview. A window will be displayed showing the default map of the selected lessons. Move the lesson nodes to the desired order, then choose OK to save and use the modified map for packaging. To reset the map to its default layout, you can toggle any node in the treeview or choose the Reset Modified Map link.

The Modify Course Map dialog also allows you to change the title and identifier of the exported course. These values may be used by the manifest generator to replace the %COURSE_TITLE% and %COURSE_IDENTIFIER% tokens. To change these values, enter the new values to use in the text fields provided, and then choose OK. Note that these values will be reset to their defaults if the modified map is reset.

Choosing a Packaging Profile, Package Type, and Location

A Packaging Profile is a collection of settings used to generate packages. There is always at least one packaging profile (the(default) profile)—which is the package settings from the CCT. Additional profiles are stored in the content database and include additional features.

Note The (default) profile options are limited to maintain compatibility with the CCT.

Choose a Packaging Profile to use by selecting one from the dropdown list.

Choose a Packaging Type

Two Package Type options are available.

The One package per lesson option will use the package profile settings to generate individual packages for each lesson. This essentially performs the same actions as selecting Package from the Import/Export Wizard in the CCT for each selected lesson. The All lessons in one package option packages each lesson individually, then creates a "unified" manifest (if desired) based on all lessons packaged. This option is of limited use with the default profile.

Choose a Package type by selecting one from the dropdown list.

Choose a Package Location

As in the CCT packager, you can use to package to the location specified in the profile, or override the default location and package to a specific folder. Use the dropdown and the Choose location link to select the location for the package or packages.

Caution Take care when selecting a custom location and using the One package per lesson option, as any lesson-specific tokens in the profile's package location property will not be used. You may end up overwriting files in the same location each time a lesson is packaged.

Selecting Packaging Options and Notifications

The following options are supported by the packager.

Clear root path before packaging
This option will delete all files from the package location before the packaging process begins.
Package result into .ZIP file
This option will move all files into a .ZIP archive when packaging is complete. The archive filename is specified in the package profile and will be located in the parent folder of the package root path (and will be a sibling of the package root folder). This option is disabled if the .ZIP filename is not specified, or if the default profile is selected.
Delete package files after .ZIP
This option will delete the individual package files once they have been added to the .ZIP archive. This option is disabled if the package files will not be moved into a .ZIP archive.
Move deleted files to Recycle Bin
This option will move files deleted by the Clear root path before packaging or the Delete package files after .ZIP options to the Recycle Bin. If this option is not selected, these files will be permanently deleted. This option is enabled only if one of the above options is selected.

 Warning  Files packaged to a server may not be able to be moved to the Recycle Bin even if this option is selected. In this case, the files will be permanently deleted—the packager will not provide a warning or notification.
Selecting Notifications

The packager generates an extensive log of its actions during the packaging process. Messages logged by the packager generally fall into one of four categories:

Information
General notification messages
Warnings
A notice from the packager that, although packaging may continue, the final result may contain unexpected results, or may not contain expected results. The packager will generate a warning if:
  • The (detokenized) package root path, media path, or other files source path for a lesson is empty.
  • One or more media files are missing.
  • The package files moved into a .ZIP archive cannot be deleted.
  • The package root path is a root path (the .ZIP archive cannot be created in the parent of the package root path).
  • The lesson to be packaged is not part of the course map.
  • When packaging multiple lessons into a single package, the package root path for a lesson is different than the root path of the first lesson to be packaged.
Errors
A notice from the packager that an error occurred while packaging a lesson. If multiple lessons are being packaged, packaging will continue for the other lessons.
Fatal Errors
A notice from the packager that an error occurred that prevents packaging from continuing.

You can choose to have the packager display a popup notification if a warning or error occurs. The popup will ask if you wish to continue packaging, or stop the packaging process. You can also choose to cancel packaging at any time by choosing the Cancel button on either the main packager window or the Packaging Progress window while packaging is in progress.

Packaging

When all necessary selections have been made, the Package button is enabled. Choose this button to begin the packaging process. The Packaging Progress window will be displayed. You can close the Packaging Progress window at any time, and packaging will continue.

During packaging, the Package button will be renamed to Cancel (and the Close button on the Packaging Progress window will also be renamed to Cancel). Choose this button to stop the packaging process. You can use the Show Results link on the main screen to redisplay the current packaging progress, or, if packaging is complete, display the log from the previous packaging attempt.

Note that logs are not maintained after the packager is closed.


Packaging Process

The process followed by the Impression Packager is an enhanced version of the process used by the CCT. For a typical lesson, the CCT's packaging process consists of the following steps:

  • The package root path is created.
  • The lesson data is extracted from the content database and saved as a file.
  • The media files referenced by the lesson are copied to the package location.
  • The runtime files (other files) are copied to the package location.
  • The manifest file is created.

When a non-default profile is used with all options selected, and the One package per lesson package type is selected, the Packager performs the following steps for each lesson:

  • The lesson's package root path is deleted, then recreated.
  • The lesson data is extracted from the content database and saved as a file.
  • The media files referenced by the lesson are copied to the package location.
  • The lesson's runtime files (other files) are copied to the package location.
  • The lesson's additional files are copied to the package location.
  • The lesson's manifest file is created.
  • Files in the lesson's package root are added to the .ZIP archive.
  • The package root is deleted.

If the All lessons in one package package type is selected instead, the Packager performs the following steps:

  • The package root path is deleted, then recreated.
  • The first lesson's data is extracted from the content database and saved as a file.
  • The first lesson's media files are copied to the package location.
  • The first lesson's runtime files (other files) are copied to the package location.
  • The first lesson's additional files are copied to the package location.
  • The second lesson's data is extracted from the content database and saved as a file.
  • The second lesson's media files are copied to the package location.
  • The second lesson's runtime files (other files) are copied to the package location.
  • The second lesson's additional files are copied to the package location.
  • The last lesson's data is extracted from the content database and saved as a file.
  • The last lesson's media files are copied to the package location.
  • The last lesson's runtime files (other files) are copied to the package location.
  • The last lesson's additional files are copied to the package location.
  • The manifest file for all lessons is created.
  • Files in the package root are added to the .ZIP archive.
  • The package root is deleted.
Note When creating a single package with multiple lessons, the Root path and .ZIP filename values for the package come from the detokenized values for the first lesson in the package. Because of this, it's important to not use lesson-specific tokens in these values.

Packaging Profiles

As noted above, a Packaging Profile is a collection of settings used to generate packages. There is always at least one packaging profile (the(default) profile)—which is the package settings from the CCT.

You can add, rename, or delete any number of packaging profiles, although you cannot delete, rename, or export the default profile. These profiles are stored in the content database and include additional capabilities.

Note Editing the default profile changes the values for packaging from the CCT.

Managing Packaging Profiles

Choose the Edit profiles link to display the Packaging Profiles Editor dialog. You can manage profiles from this dialog using any of the links listed in the Additional Actions section, or use the Edit the selected profile link to change the values of any profile, including the default profiles.

Note Many of the values listed below are described as tokenized strings.  You can use the View selected item tokens link on the main window to see a list of all tokens and their values for a selected lesson.  Some fields do not support all tokens.

Basic Packaging Profile Values

The following profile values are available for editing for all profiles, including the default profile supported by the CCT. These values are explained below:

Other (shell) files source
A tokenized string specifying the location of the shell (runtime) files to be included in the package. Listed as "other files source" in the CCT.
Root path
A tokenized string specifying the main package output directory. Listed as "package root path" in the CCT.
Data
A tokenized string specifying the location (relative to the package root) of the lesson XML file. If this value is blank, the XML file will be placed directly in the main package output directory.
Media
A tokenized string specifying the location (relative to the package root) where the media assets should be copied to. If this value is blank, the media assets will be placed directly in the main package output directory.
Lesson filename
A tokenized string specifying the name of the lesson XML file.
Lesson XML options
A collection of options used to fine-tune the content and format of the lesson XML file.  Clicking on the link displays a dialog that allows the user to select which options should be used.
Manifest template
A tokenized string containing the template manifest to generate.  Although the name "manifest template" strongly implies a SCORM-conformant (or equivalent) manifest, you can put anything you want in this field.  As noted below, in the default profile, the filename imsmanifest.xml is used for the manifest.  If this value is blank, a manifest file will not be generated.

Additional Packaging Profile Values

Additional values are available for editing for a non-default profile. These values are explained below:

Don't package media files
When checked, the Packager will not copy referenced media files to the package location.
.ZIP filename
A tokenized string specifying the name of the .ZIP archive file to create. The archive will be located in the parent folder of the package root path (and will be a sibling of the package root folder).
Manifest Filename
The filename to use for the manifest. In the default profile, the filename imsmanifest.xml is used. Note that a manifest will not be generated if the Manifest Template field is empty.
Profile is designed for unified manifest
If checked, indicates that the profile is intended to be used with the All lessons in one package package type option. This value is used to change the Package type dropdown when a profile is selected from the Packaging profile dropdown.
Additional files source
A tokenized string specifying the location of additional files to be included in the package.
Additional files
A tokenized string specifying the location (relative to the package root) where the files from the Additional files source value should be placed.
Media source
A tokenized string specifying the original location of the media files.  Setting this value overrides the media path project property in the content database.  Leave this value blank to use the default value.

Unified Manifests

The packager supports additional tokens designed to facilitate the creation of a unified manifest. Several sample profiles using these additional tokens are included with the Impression Packager software. You can import these profiles using the Edit Package Profiles dialog.

Course Tokens

The following tokens support aggregate (course) level values.

%COURSE_TITLE%
The title of the course. By default, this is the same value as %DATABASE_TITLE%.
%COURSE_TITLE_FILENAME%
A filename-safe version of %COURSE_TITLE%. Invalid filename characters are replaced with underscores.
%COURSE_TITLE_PATH%
A path-safe (can contain path separator characters) version of %COURSE_TITLE%.
%COURSE_IDENTIFIER%
The identifier of the course. By default, this value is COURSE. You can change this value by changing the value of the Course Identifier field in the Modify Course Map dialog.
%COURSE_IDENTIFIER_FILENAME%
A filename-safe version of %COURSE_IDENTIFIER%. Invalid filename characters are replaced with underscores.
%COURSE_IDENTIFIER_PATH%
A path-safe (can contain path separator characters) version of %COURSE_IDENTIFIER%.
%COURSE_CLASSIFICATION%
The value of the classification property of the course. This will be the highest classification value found the lessons to be packaged. Note that this value is based on the classification value stored for each lesson at the time the database was opened by the packager.

In addition to the specific tokens listed above, the following tokens can be used to access specific lessons at the aggregate course level.

%FIRST_[token]%
The value of the token specified by [token] for the first lesson to be packaged. For example, to use the value of the %OTHER_FILES_SOURCE% token of the first lesson to be packaged, use %FIRST_OTHER_FILES_SOURCE%.
%LAST_[token]%
The value of the token specified by [token] for the last lesson to be packaged.

Iteration Tokens

When creating a unified manifest, you'll typically want to repeat sections for each lesson to be packaged. The following token pairs delineate a section of the manifest to be detokenized and inserted for each lesson.

Note Each section is defined by a matching pair. Nested iteration sections are not supported.
%BEGIN_EACH_LESSON%, %END_EACH_LESSON%
This token pair specifies that the section should be detokenized and appended for each lesson.
%BEGIN_EACH_LESSON_BUTFIRST%, %END_EACH_LESSON_BUTFIRST%
This token pair specifies that the section should be detokenized and appended for each lesson except for the first lesson.
%BEGIN_EACH_LESSON_BUTLAST%, %END_EACH_LESSON_BUTLAST%
This token pair specifies that the section should be detokenized and appended for each lesson except for the last lesson.
%BEGIN_EACH_LESSON_BUTFIRSTANDLAST%, %END_EACH_LESSON_BUTFIRSTANDLAST%
This token pair specifies that the section should be detokenized and appended for each lesson except for both the first and last lessons.

Samples

This release of the Impression Packager includes a number of sample packaging profiles that illustrate how to generate unified manifest files (for multi-SCO packages) that implement common requirements. These samples are provided as both standalone .packageProfile files that can be imported using the Packaging Profiles Editor, and as part of a sample database that can be used to generate SCORM content.

The samples include:

Unified Example - Simple Aggregation
Places each lesson (including lesson XML, media files, and runtime files) in its own folder within the package. Uses the Additional files source profile value to place the required SCORM files in the root of the package.
Unified Example - Efficient Aggregation
Places all lesson XML and media files in a single folder. One copy of the runtime files is placed in the root. Generated parameters are used to specify which lesson should be loaded into the runtime.
Unified Example - Forced Sequential Order
Requires each lesson to be completed in order.
Unified Example - Posttest
Requires the posttest to be completed before the course is considered complete. Lessons can be taken in any order, but all lessons must be completed before the posttest is enabled.
Unified Example - Pretest/Posttest
Supports "testing out" if the pretest is successfully completed; otherwise, processing is similar to the Posttest example.

Revision History

Impression Packager, released on 7 September 2017:

  • Fixed a problem where, in some cases, properties were incorrectly optimized out of the lesson XML if the property name differed only by case.

Impression Packager, released on 6 June 2017:

  • Fixed a problem where persisted properties with an editor type of "size" were optimized out of their collection when they shouldn't be.

Impression Packager, released on 30 June 2016:

  • Fixed a problem where overwriting of existing media files during packaging would erroneously report an error.

Impression Packager, released on 3 December 2015:

  • Added support for media path subfolders.
  • Added optional Media Source profile field.
  • Added additional information on profile field values to this document.

Impression Packager, released on 11 March 2015:

  • Fixed a problem where filename or pathname tokens could include trailing spaces, resulting in a file or path name mismatch during packaging.

Impression Packager, released on 27 March 2014:

  • The packager can now be used as an Impression Connect application.  When run as a Connect application, the Packager automatically switches to use the currently open database, and automatically selects the item (and any descendents) for packaging.
  • Only users with project property editing rights (in SQL, administrators or superusers) can edit packaging profiles.
  • Back end changes.

Impression Packager, released on 8 November 2013:

  • Minor documentation fixups.

Impression Packager, released on 12 September 2013:

  • First non-beta release.
  • Fixed a problem where the shortid property of the storyboards in the lesson XML file were not recalculated on export.
  • Fixed a problem where the Token List window did not show the proper tokens when the Use modified course option was selected.
  • Several behind-the-scenes changes.