Technical
information on GroupCalendar™ for Outlook ®
GroupCalendar™
is a com add-in, the GroupCalendar.dll, that combined with two executables,
GCHelper.exe en GCSystray.exe does the work.
The com add-in integrates with Outlook ® from where it monitors Outlook ®
events related to the calendar of Outlook® .
Database
Jet
Installing GroupCalendar™ creates two Jet databases (Ms Access 2000
format) in c:\Program Files\Group Calendar. GroupCalendar.mdb and
Backdrop.mdb
These MS Access® databases don't need MS Access® to be installed on
the computer. GroupCalendar™ will use the same JET technology as MS
Access to use these databases.
The Jet technology is available by default on all Windows pc's.
When
GroupCalendar™ starts up for the first time, it will create an INI file
with default settings for the logged on user. The database location in the
INI will point to the default database location in c:\Program Files\Group
Calendar\GroupCalendar.mdb . This default setting is fine to simply test the
product in a stand-alone situation without other users but the moment one
wants to really share information with others in a team setting it's
necessary to share one copy of the GroupCalendar.mdb somewhere on the
network. (or use SQL server)
SQL
For larger workgroups from around 25 members it may be wise to use a
Microsoft® SQL database as the central GroupCalendar™ database. The
GroupCalendar.mdb file will no longer be used then. To create the database
on the SQL server, a database creation script can be found in the program
directory. The database administrator will have to create the user accounts
that may access the database him/herself.
SQL over the Internet
When tcp/udp port 1433 on the firewall is being redirected to the
internal SQL server IP address, users can connect to the database over the
internet as well simply by specifying the public IP address of the router/firewall
in the GroupCalendar™ database settings.
Backdrop
Backdrop.mdb is the local buffer on the client pc in case the central
database is temporary not available. Everything a user does while not
connected to the central database is batched in the Backdrop database until
the connection is restored. When the connection to the central database is
restored the content of the backdrop is moved to the central database and
cleaned out from the backdrop.
Database structure
The database structure is very simple. it holds only two tables:
-
TB_Appointments where all appointment info can be found and,
- TB_Users where all user info is being stored.
It's possible to delete users from the users table when someone leaves the
company and return the license to the license pool. Deleting records from
the Appointments table will remove the corresponding appointment from the
Group Calendar folder in Outlook after a resync.
Maintenance
It's wise to open the central database on a regular basis with MS Access®
and select the 'compress/repair' option. This cleans and restructures the
database and keeps it in good shape. However the penalty for not doing that
is not severe. Even a backup is not realy needed.
Backup
It might sound strange but a backup is not really needed. If the central
database would get corrupted, all one needs to get back in business is place
a new clean database on the network. The moment that users start up Outlook®
again, they will be welcomed to the new database an their future
appointments can be exported directly to the new database. even if they
don't export their future items, within the hour the appointments will
appear in the group calendar database.
Usernames
The username is
an important detail of GroupCalendar™.
Starting Outlook®
loads the com add-in by Outlook® and the first thing the add-in does
is to determine what the username is of the current Outlook® user. The
add-in uses a number of methods to determine who the user is. First it looks
in the sent items and takes the first email it finds and tries to read who
sent that. If no email has ever been sent, it looks in the Inbox and check
to who the email was addressed. If no email is available it will read the
Outlook profile and try to find out what name it has been configured with.
Unfortunately some Outlook ® versions and configurations will not allow for
this and when that fails, it uses the Windows® logon name.
The username
gets written to the central database in TB_Users if it's not already there.
If it was not there already, the user will be welcomed and offered to export
their calendar items to the central database for others to see.
The username
will also be written to HKEY_CURRENT_USER\Software\OpusFlow\GC\Username in
the registry.
This value can be modified manually and it will override the name that
GroupCalendar determined from the settings in Outlook.
The license
counter of GroupCalendar™ uses the names in TB_Users. A 5 user license
will report an error when the 6th user is connecting to the central
database. It is however possible to remove users from the central database
table TB_Users to free up a license for another user.
Username vs.
nickname
GroupCalendar™
shows appointments with the username in-between brackets [ ] . The default
setting can be space consuming in the limited subject space of the
appointments so there is a short name setting available in [settings] - [edit
user info]. Any name or even one character can be used as a nickname to be
displayed in front of the subject in the Group Calendar folder. A lot of
people use their initials as a nickname.
INI
files / Outlook profiles / Reset settings
/ Terminal server
GroupCalendar™
creates an INI (settings) file for every unique name it finds when
Outlook ® starts up. The INI files are located in c:\Program Files\Group
Calendar\ and can be recognized with 'Username'.ini
If no INI file was created before, a new one with default settings will be
created and a GroupCalendar™ folder gets created as a sub folder under the
default calendar folder. The GroupCalendar may be moved to another location
or another Group Calendar may be created in another PST file. The name of
the folder is not important as long as it has been selected in Settings as
the Group Calendar.
Removing an INI file will recreate it at the next Outlook ® start-up, with
default settings. On pc's with multiple users there will be multiple INI
files with unique names.
The previous
shows that all users need READ & WRITE permission in the program
directory. That's something to keep in mind when installing it on a terminal
server.
Example of an
INI:
[CRM] - This
section define the folder in Outlook that is used as the Group Calendar
folder
CentraleAgendaEntryID=00000000CAB3DB9BC2CD6045B4087D5544E3D6A462810000
CentraleAgendaStoreID=0000000038A1BB1005E5101AA1BB08002B2A56C200006D737073742E646C6C00000000004E495441F9BFB80100AA0037D96E000000453A5C32303034206A69762E70737400
GroupCalendarPath=mijn pst\gc
[Sync] This
section is a representation of the settings available under the Sync
GroupCalendar button.
FastMode=True This
setting specifies whether or not the synchronizing should try to locate the
existing item in the GroupCalendar folder with all means possible. This
might take a long time. Normaly this setting should be on/true but on some
non-patched Outlook version it might have to be switched off to insure that
all items are synced correctly and no double items are being created.
AutoStart=False This
setting loads GCSystray.exe; the small calendar icon next to the clock that
synchronizes the database with the GroupCalendar folder.
[Database]
Pad=X:\Group Calendar.mdb This
setting specifies where the central database is located on the network.
[User]
Fullname=Jan de Bouvier The
name that GroupCalendar found as the username at startup
Initials=JDB Not
in use.
[Nickname]
MyNick=jb This setting
specifies how the identity of the owner of the item should be displayed in
the Group Calendar folder in Outlook®.
[Participation]
NoParticipation=False In
[Settings]-[Edit user info], the checkbox that prevents the personal
calendar to be monitored so no appointments get visible in the Group
Calendar.
[MessageBoxes] Prevents
display of notifications when another user creates an appointment for this
user and when the add-in loaded successfully
NoLoadMessage=False
NoDelegateChangeMessage=False
[SQLDatabase] Specifies
that SQL server is in use and the settings
related to that.
UseSQL=False
ODBCDriver=SQL Server
ServerName=10.0.0.2 The
server name or IP address. (private or public)
DBname=GroupCalendar
UserName=user
PassWord=letmein
GCHelper.exe
GCHelper.exe
starts when the computer boots up. When Outlook® is running it will check
every 30 seconds if the GroupCalendar™ com add-in is still active in
Outlook®. If not, it will try to activate the GroupCalendar again. The
Windows® tool msconfig can be used to enable or disable the start-up of
GCHELPER.exe
GCSystray.exe
GCSystray.exe
starts when Outlook ® starts and when the checkbox is ticked in [Sync
GroupCalendar]. It runs at a definable interval of 5 to 120 minutes to
synchronize the Group Calendar folder in Outlook with the database on the
network.
Synchronization or
Real-time information
The
GroupCalendar™ com add-in logs all appointments someone makes in their
personal calendar into the database in real-time. The database table
TB_Appointments holds a record/line for every appointment with all details
needed to recreate the appointment in all group calendar folders at the
users pc's.
So logging
appointments is a real time process.
The GridView©
shows the database information in real time while the Group Calendar
folder in Outlook updates the database information at a predefined interval.
So viewing
information with the Grid View © is a real time view on the available
GroupCalendar items.
The creation of
items in the group calendar folders in Outlook® is not real-time. it
depends on the interval setting in the GCSystray that runs next to the clock
in the lower right hand corner.
User fields,
Views and Filters
The
departmnt field is one of four user fields in the Outlook calendar and Group
Calendar next to Owner, GCID en GROUP.
In the departmnt field the value will be shown that corresponds to the
Department value in the database table TB_users. (Settings-Edit user info).
This value can be used to create filtered views of the information in the
Group Calendar folder in Outlook or in the real-time Grid View ©
Developers
OpusFlow
supports developers who want to integrate the central database into other
projects. Developer Support is provided at no cost if the application is of
generic nature and will be made available to the general public for free or
at a reasonable fee.