The CLC’s D-Tech Locker Utility both removes unclaimed items from and adds new holds to the locker’s database. Without this tool, these tasks would need to be performed manually by the staff. Unclaimed holds could prevent the locker from opening. It is recommended that you run this script daily and that staff physically remove any unclaimed items from the locker after the script is run.
By default the tool runs in read-only mode and requires passing the -write
parameter to update the database. The tool exposes quite a few options in appSettings.json
but the only ones required to be set are ConnString
, ClcApiKey
, and LockerBranchId
.
The current release, version 11, can be found here:
dtech-locker-utility-11.zip (2.9 MB)
This version only supports the newer, multi-table database. For the older version that supports the legacy, single table database schema please open a helpdesk ticket.
The tool is built using .NET Core and may require installing the runtime, which can be found here: Download .NET 6.0 (Linux, macOS, and Windows)
In addition to using this utility, we also recommend opening a HelpDesk ticket with CLC staff to ensure that the 3M SIP CKO option to allow CKOs of In-Transit items is allowed. This is a workaround to the following D-Tech locker issue:
One flaw the lockers have is whenever any items are added to a given locker, any other item(s) already in the locker are checked in, too. This creates the issue of putting these items into In-Transit (since, of course, they’d never belong as In at a lockers branch). By default In-Transit items are unable to be checked out, so lockers would frequently become unusable.
appSettings.json Settings
Setting | Description |
---|---|
ConnString | connection string for local D-Tech locker MySQL database |
ClcApiUrl | URL for CLC API, should be https://api.clcohio.org unless told otherwise |
ClcApiKey | API key for CLC API, provided by CLC |
LockerBranchId | Polaris OrganizationID for your locker branch |
OldItemsLabel | Label for items that were in the locker when the tool was ran |
NewItemsLabel | Label for the new list of items that should be in the locker |
UnclaimedItemsLabel | Label for unclaimed items that are in the locker |
UnknownItemsLabel | Label for unknown items in the locker, those that are neither held nor unclaimed. There shouldn’t be many of these normally |
LockerOkMessage | Message displayed when the locker already contains the correct items |
WriteOkStatusMessage | Message displayed when the locker’s database row was successfully updated |
WriteErrorStatusMessage | Message displayed when the locker’s database row could not be updated |
LockerSeparator | Text that separates each locker in the text output |
MaxTitleLength | Titles longer than this will be truncated to avoid display issues |
ShowOkLockers | By default, only lockers requiring action will be shown. If this option is enabled, ALL lockers will be shown in the output |
AllPatronLockersInfoHeader | Label for a patron’s full list of lockers. Only used if a patron is in multiple lockers |
TextOutputFolder | If set, a timestamped text file will be created in this directory each time the tool is run |
TextOutputFilenameRoot | Root of the text output filename for the above folder, shown before the timestamp |
TextOutputDateFormat | Date format string for timestamping the text output filename |
OpenTextFileOnExit | If enabled, the text file will be automatically opened after the tool is finished |
Launch Parameters
Parameter | Description |
---|---|
-write | Enables updating the locker database, otherwise runs in read-only mode |
-pause | Pauses after execution, requiring the Enter key to close the application |
-showok | Overrides the appSettings.json setting to force showing lockers that don’t require action |
-hideok | Overrides the appSettings.json setting to force hiding lockers that don’t require action |