Thursday, April 06, 2006

Sessions 103 - the Evolution Continues

As with most of the really nice features in GTViewer, their inspiration came from customer requests. The session management in GTViewer has continued to evolve over the life of the product and with the latest enhancement (requested by a customer), an even better approach can now be taken with session management. There have been two posting on Sessions in the last few months. Sessions 101 discussed the basics of session management and Sessions 102 discussed a new feature. This posting, Sessions 103, is a further extension to the new feature discussed in the Sessions 102.

The ExternalSessionsOnly flag (in the Additional Properties section of the .GTM file) was added in GTViewer 5.0.x.10. When set to 1, it prevented any user from accessing the internal session of a .GTX file. While using external sessions with a .GTX file was not new, there was previously nothing to prevent a user from using it, and the default file opening mechanism was geared to run in the internal session mode. Thus, this one flag ensured that no internal sessions would be used. Remember that there is nothing wrong with using the internal session in a .GTX file in single user mode, but multiple users sharing the same .gtx file must use external sessions. Also, keeping the session separate from the .gtx file means that the .gtx file can be replace without worrying about exporting any redlines from the .gtx before updating it.

While the ExternalSessionsOnly=1 setting streamlined session management in GTViewer and prevented users from intentionally or accidentally using the internal session in a .gtx file, it still left some of the session management responsibilities up to the users. If the user opened a .gtx file, did some work, then existed; GTViewer would ask for a location to save the session. Then it was the user’s responsibility to use the session he or she created the next time around.

It turns out that a common workflow is to have users always use the same session, even if the parent .gtx file is updated. So, having the users specify the name and location of the session file and remember to use the session file they created instead of the .gtx file is a unit of work that can now be eliminated by using ExternalSessionsOnly=2. This new option will default the name of the session file to be the same name as the .GTX file (except for the .gts extension) in the same directory. If a user opens a .gtx file with this ExternalSessionsOnly set to 2, GTViewer will first check to see if a session of the same name exists. If the session does exist, it will be opened instead of the .gtx file. If the session file does not exist, the name of the session file is automatically assigned the same name and path as the .gtx file (only with a .gts extension) and will be saved when the .gtx file is exited or explicitly saved. Thus, the session management responsibilities can now be removed from your users completely if your workflow fits within these confines. There are many users who keep several different sessions for a single .gtx file and this option is not appropriate for those users (the ExternalSessionsOnly=1 might be a more flexible option for them).

The ExternalSessionsOnly=2 option will also work with .GTM files. There is not internal session in a .GTM file, but the automatic naming of the session and checking to see if a session of the same name exists and opening it instead of the .GTM file can still be useful for removing session management responsibilities.

No comments: