Restoring a deleted document
In a client/server environment, content objects are never really deleted; they still exist on the server. Instead, they are removed from the Library folders so that they are not visible within the Library itself. However, they will appear in the Deleted documents view, from where developers can display and restore them. The only way they can be truly deleted is by the Administrator purging them. The advantage of this is that you can always (up until the point that the Administrator has purged it) "un-delete" a content object, if you realize that you deleted it by mistake.
To restore (un-delete) a content object, carry out the following steps:
- From the Library screen, click on the drop-down button for the View field (which will normally indicate Details view) on the View toolbar, and select Deleted documents. A list of all of the content objects that have been deleted (but not purged) is displayed, as shown in the following screenshot:
- Right-click on the document that you want to restore, and select Restore from the context menu. This is the only option available on this context menu.
The document is restored to the Library, and placed back in the folder it was originally deleted from. This location is also shown in the Original location column in the Deleted documents view. This will create another version in the version history for the content object—just as deleting it did. This is shown in the screenshot below:
Exporting and importing content
If you are working in a stand-alone environment and want to share your developed content with another user, you will need to export it from your Library so they can import it into their Library. If you are a developer working in a client/server environment, it is unlikely that you will need to export your content because all users will be able to access it in the same Library. However, even then there may be a need to export your content, for example:
- Your company may use a "staged" approach to implementation, whereby all content is developed in a Development library before being migrated to a more secure production environment
If you are working with multiple libraries, then it is recommended that you always export/ import folders, and not simply Outline Elements and their contents. This will reduce the possibility of elements that appear in multiple outlines being overwritten on successive imports.
- You have developed content in one environment (for example, your personal stand-alone environment) and now want to bring it into your company's client/server environment
- You want to take a copy of everything you have done, as a personal back-up
- You want to export all of your content before upgrading to a new version of UPK and importing your content into the new version's Library
Whatever the reason, UPK makes it easy to export content. In this section we'll look at just how to do this.
You would not normally use this approach to export content for translation.
Exporting content objects
You can use the Export function to export content objects as an archive, publishing options, sound files, and content objects for localization. This section covers exporting content objects as an archive.
You can export any type of content object to an archive: Modules, Sections, and Topics, as well as Web Pages and Packages. You can also export any of the objects in the System folder, such as Templates and Publishing Packages.
To export a content object, carry out the following steps:
- In the Library, select on the content objects that you want to export. You can select a single object, or multiple objects of various types. You also have the option of selecting a folder and exporting all of the content within the folder.
- Select menu option Tools|Export|Documents. The Export dialog box is displayed, as shown in the following screenshot:
- Click on the Browse button next to the Export content to: field. The Save As dialog box is displayed, as shown below:
- Enter a suitable file name for your export file in the File name field.
- Note that UPK will automatically select a file type of Content archives (*.odarc) and add the file prefix .odarc (for OnDemand Archive. Note the reference to OnDemand even though the product is no longer called OnDemand!).
- Click on Save to confirm the destination folder and file.
- Back in the Export dialog box, under Selection Options, select whether you want to export only the specific content that you have selected (Export my selection), or the selected content and all related documents (Export my selection and related documents). Related documents are typically content objects such as web pages that are linked to the selected object(s). You can see a list of these objects by clicking the View related documents link. Depending on how you have organized your Library, you should normally export entire folders and their contents, not Outline Elements. Otherwise, you risk missing out objects that are not directly linked into the Outline, such as Packages. You also risk having broken links when you (re)import the content object(s).
- Click on Export. The selected content objects (and all related documents, if you chose that option) are exported to the specified file. While this is being done, a progress indicator is displayed for the object currently being exported, and the overall percentage complete. The export may be very quick, especially if you are only exporting one or two Topics so don't blink or you'll miss it. An example of the progress indicator is shown below:
- Once the export is complete, you are returned to the Library.
As the content is exported to a single file, you can easily send the file to another Developer for importing into their UPK Library, save it to CD as a back-up, and so on. How to import content objects is described next.
Importing content objects
You can import UPK content that has previously been exported from another implementation of UPK. You can also import content from your own implementation as a back-up.
Do not use the import function to import content from version 8.x or earlier of OnDemand into UPK because the format in which content objects are stored changed significantly between version 8.x/2.x and version 9.x/3.x. In this case, you should use the convert function described in the section Converting content from a previous version of UPK or OnDemand that appears later in this article.
To import previously exported content objects, carry out the steps described below:
- Select menu option Tools|Import|Documents. The Import dialog box is displayed, as shown in the following screenshot:
- Click on the Browse button to the right of the Select content to import field. Navigate to, and select the archive file that contains the content that you want to import. This must be a file with a file type of .odarc.
- The Import content to field specifies the folder within your Library into which the imported content will be placed. This defaults to /Import, and UPK will create this folder if it does not exist already. If necessary, you can use the Browse... button to navigate to, and select any other folder within your Library. If you don't know exactly what content is contained within the archive, it is probably a good idea to not import it directly into your "production" libraries. In this case, consider accepting the default folder as you can always move the imported content into the correct folders, once the import is complete.
- If UPK finds that your Library contains versions of any of the objects contained in the archive, then the archive version will not, by default, be imported. If you do want to import this content, and are happy to overwrite any existing versions that you have in your Library, then you can select the Overwrite existing documents option in the Import dialog box.
If you are importing content from one Library to another, for example, if you have separate Development and Production Libraries, then you should always select Overwrite existing documents. Otherwise, any changed Content Objects will not be re-imported.
Note that UPK does not use the file name, or the folder into which it is being imported, to determine whether a file already exists. It uses its own internal 32-character identifier that is retained when the object is exported.
- Click on Import to begin the import.
- If the folder that you specified in the Import content to field does not already exist, then the following message will be displayed:
Click on Yes to create the folder.
- The content is imported. During the import, a progress indicator is displayed showing the object currently being imported, and the overall percentage complete. The import may be very quick, especially if you are only importing one or two Titles. Again, don't blink or you'll miss it. An example of the progress indicator is shown in the following screenshot:
- If some content already exists in the target folder, and you did not select the Overwrite existing documents option, a warning message is displayed, as shown in the next screenshot:
Always click on the View activity log link to display the list of files that were and were not imported. An example of the Activity Log is shown in the next screenshot:
In this example, one Folder was imported and one Topic was not imported because it already exists in our Library. Click on Close button to close this dialog box. Back at the Partial Import dialog box, click on OK to close the dialog box.
Once the content has been imported, you are returned to the Library. You can now navigate to the /import folder and work with the imported objects the same way as you work with objects that you created yourself.
Converting content from a previous version of UPK or OnDemand
There is one further option related to importing content into your Library. This is importing content from OnDemand 8.x or UPK 2.x into OnDemand version 9.x or UPK version 3.x. The format in which Content Objects are stored changed from flat files in 8.x/2.x to a database in 9.x/3.x. This means that if you want to import content created in one of these older versions into a more recent UPK library, you will need to convert it to the new format. Luckily, UPK provides functionality for doing just this.
In version 8.7 and older of OnDemand, it was only possible to import content from one Title into another Title that had exactly the same folder name. This limitation was removed in Version 9.x, and it is now possible to import content from any Title into the current library. This is largely because in Version 9.x, multiple Titles can be contained within the same single library, so such a limitation no longer makes sense.
To import content from a prior version of UPK or OnDemand, carry out the steps described below:
- Create a new folder into which you want to import the content.
- Select menu option Tools|Convert From 2.x|Content. Note that the "2.x" refers to "UPK prior to version 3.0", which also includes OnDemand version 8.x.
If you have content developed using OnDemand version 6.x or 7.x, then you should first convert this content to version 8.x, and then convert it from 8.x to 9.x/3.x. If you do not have access to an 8.x environment, then contact UPK Support for assistance.
The Content Conversion Wizard is displayed in the following screenshot:
- Click on the Browse button to the right of the Content location field. Navigate to and select, the location in which the OnDemand.ini file for the library from which you want to import content is located. Note that it is extremely important that you locate the OnDemand.ini file. This is the file that tells OnDemand what simulations exist within the Library. For UPK, the file is still called OnDemand.ini.
If you do not have access to the OnDemand.ini file (for example, if you only have a set of publisher files) then you will not be able to import the content as described here, and should contact UPK Support for assistance. They may be able to manually create the UPK file for you, and help you import your content.
- Once you have specified the source location, click Next. The Title Selection dialog box is displayed, as shown ahead:
This dialog box lists all of the Titles that exist within the selected OnDemand or UPK Library. There may only be one of these.
- Select the checkbox to the left of all of the titles from which you want to import content (or deselect the checkbox for all Titles from which you do not want to import content, depending on what is selected by default). Note that you cannot select specific Modules within a Title – you need to import the entire Title, and then delete what you don't want.
- Click on Convert. A progress tracker will be displayed. Note that depending on the amount of content being imported, this may take 30 minutes (or more) to complete.
Once the content been imported, a confirmation dialog box is displayed, listing the Titles that have been imported. This can be seen in the following screenshot:
- If there have been any problems during the conversion, then these will be listed in the Activity Log. To display the Activity Log (which you should always do), click on the View activity log link. An example of the Activity Log is shown below:
- Check any errors listed. Most of this will mean nothing, but you can locate the objects in the Library via either the Name, or the GUID (which is the 32-character identifier assigned to the object by UPK when it imported the object). Close the Activity Log to return to the Conversion Wizard dialog box.
- Click on Finish. You are returned to the Library screen.
If you are importing several Modules that each includes the same Infoblock (Web Page or Package in UPK 3.5), then UPK will create multiple copies of this Infoblock, one for each Module in which it is included. You will need to manually locate these and consolidate them, if required.
Note also that if you have imported a Topic that had multiple Infoblocks attached to the Concept pane (for example, a text file and an image file), then UPK will create a Package containing each of these Infoblocks, and provide a link from the Concepts pane of the imported Topic to this new Package.
A folder will have been created below the selected import folder for each Title that has been imported. This will contain the entire content of the Title with a sub-folder created for each Module and Section within the Title so that the original Library structure is preserved. If you only wanted to import selected exercises, then you need to delete the ones that you didn't want to import.
The need to make regular back-ups of your work is extremely important. In a client/server environment, this is simplified by the fact that the server is backed up on a reasonably-regular basis. So, as long as you check in your content, it will be backed up as well. The other advantage of checking in your content is that each time that you check in a content object, UPK takes a copy of the previous version. You can display, or revert to, any of these previous versions should the need arise. A further advantage of a client/server environment is that content objects are not immediately deleted from the server when you delete them from the Library. This means that it is possible to un-delete a content object if necessary.
In a stand-alone implementation, there is no server so there are no regular backups, and no automatic versioning. It is therefore, left to you, the developer, to take your own back ups. The best way of doing this is to use UPK's export functionality and then its import functionality if you need to revert to an earlier version.