Inmagic usage at MDA – maximizing the ROI of your software

by Kathy Bryce Friday, June 25, 2010 5:41 PM

It's enlightening to visit with clients and find out how they are using Inmagic software, especially when they are not typical applications.  We are always suggesting maximizing your return on investment by using the software for anything and everything, so here is a great example of a client doing just that.

Last week I was in Toronto and met with Dave Hook at MDA, a long time client and user of Inmagic software.   Dave has some very cool applications with over 30 different DB/TextWorks databases populating much of their intranet content.  He showed me a few of these such as their home page which displays the latest news, plus their system for listing the latest training courses and how users can register for these online.  Following registration, the user’s supervisor is notified by email, the number of remaining available spaces updates until the class is full and then an attendee list can be printed out by the instructor.  Behind the scenes multiple DB/TextWorks databases are in play.  The web interface including all data entry for many of the databases is handled exclusively by ODBC calls into the databases using standard SQL queries written into each HTML page.  This results in pages that don't look like they were generated from a database but fit seamlessly into their intranet interface.

Dave also uses DB/TextWorks for quick prototyping of database ideas for various projects.  As it is so easy to add fields and functionality, he is able to build these prototypes and have users critique and suggest modifications in a very short time frame.  If applicable, the prototype can then be finalized as an Inmagic application, or used by their IT group as a basis for building a system in SQL or other software.  This prototyping process is very much in sync with our philosophy of launching fast, and refining later. 

So, just like Dave at MDA, don’t be restricted to just traditional uses for the software! Let us know if you have ideas for new databases that you would like us to help you with?

Content Server (aka "DB/Text for SQL") Backup Script Utility

by Ted Jardine Wednesday, June 09, 2010 12:15 PM

If you are using Content Server (now known as "DB/Text for SQL"), it goes without saying that you should have regular automatic backups in place: regularly verified and regularly "test" restored. You DO have such a plan in place, right? Right?!?

For backing up DB/Text for SQL, it's a touch more involved than a typical SQL Server backup, simply because there's data both in and out of SQL Server and both need to be backed up at the same time. Moreover, SQL Server databases are not able to be backed up by typical backup mechanisms (to oversimplify, the actual files are always locked).

Fortunately, a manual backup of CS is pretty easy: just open up your CS Admin and follow the prompts to back up everything in one fell swoop into one handy .dat backup file. The bad news with that however, is that manual backups are a half-baked solution; backups need to be automated or they just won't get done often enough (if at all).

Options for automated CS backups:

  1. Back up the SQL Server aspects of CS as part of your regular automated SQL Server backups. And ensure that the external files are backed up at the same time. This solution will likely require the involvement of your IT staff. Moreover, automated SQL Server backups require SQL Server Agent which is not included with SQL Server Express (a requirement at least for a backup process that isn't the digital equivalent of the hokey-pokey dance crossed with a waltz). See your Administrator's Guide for details (for backup instructions, not dance tips).
  2. Use the built-in CS Admin backup capabilities, but automate them by plunking some CS-specific backup scripts in a batch file and scheduling them with Windows Task Scheduler.

Aha, you SQL-Server-Express-loving-person! Option two sounds great! Let's do it! Not so fast...have you seen those scripts? If you've got any more than one or two textbases, you'll go blind trying to accurately create and maintain those batch files. And that's where our new handy-dandy CS Backup Script Generator comes in. With it, you can quickly and easily generate accurate backup scripts contained in an automatically generated batch file that can be automatically run with a scheduled task. Did I mention automatically!?

Backups + Automation = Sweetness.

CS Backup Script Generator


  1. Download the Andornot CS Backup Script Generator here (yes, it's priceless so it's free) and install. Note that you can install the utility on any Windows machine as it does not need to be on your CS server.
  2. If you don't already have the Microsoft .NET Framework 4.0 installed, download it here and then install.
  3. Run the utility (should be in your start menu with a link on your desktop) and fill in three fields:
    1. SQL Server Instance: the name of your SQL Server instance, such as MachineName\SQLEXPRESS (if you don't know it, you can find it easily in your CS Admin).
    2. Backup directory: where you wish to have all backup files saved to (such as "D:\Backups\").
    3. Textbase Information Text: the text from the "List Textbases" summary within CS Admin (just select all the text in the summary, making sure to include the entire textbase listing such as the following:

      Textbase: D:\data\Barcodes
        SQL Database: '_InmTB_18'
      Textbase: D:\data\Borrower
        SQL Database: '_InmTB_19'
      Textbase: D:\data\Catalog
        SQL Database: '_InmTB_20'
      Textbase: D:\data\Contacts
        SQL Database: '_InmTB_21'
      Textbase: D:\data\Loans
        SQL Database: '_InmTB_22'

      The utility is smart enough to pick up the list of textbases from all the text in the summary, so you can paste in as much or as little of the summary as you like, as long as it includes the textbase listing. Get to the listing in CS Admin via the "Manage Textbases" > "List Textbases" menu item.
    4. Hit "Preview" to take a look at your new masterpiece (and shudder to think of doing that manually especially if you've got 10+ textbases) and/or "Batch it!" to save a .bat file to the location and name of your choosing.

      CS Backup Script Generator Preview
    5. Test the generated batch file by double-clicking it. After a few minutes (or less depending on the size of your database), there should now be a  .log and .dat file for each of your textbases in your specified backup directory.
    6. Review the .log file for any errors or warnings.
    7. Schedule the batch file to run daily during an off-peak time.
    8. Regularly review the generated log files for any errors or warnings and verify that backups are taking place as required.
    9. Ensure that your backup directory itself is backed up off-server and off-site for disaster recovery. The generated .dat files can be simply x-copied (copied and pasted) to another location, or better yet, automatically backed up with your server's backup software as part of your server's regular backup routine.
    10. Every so often, test out restoring your .dat backups via the CS Admin.

Remember, "hell hath no fury like data scorned." Please love your data and back it up.

Disclaimer: this backup utility is very much "beta" quality. I'm not responsible for anything it may or may not do to your system (bad or otherwise). Use at your own risk. Having said that, the setup program simply places the .exe with some support DLLs on your system, and when the utility is run, you can easily review the batch files it generates before running them (which you could generate manually yourself if you prefer).

Link a Genie Borrower to their Loans, Reserves, Orders and Routed Serials

by Jonathan Jacobsen Thursday, June 03, 2010 5:15 PM

Genie’s MyGenie feature is a great way for a user to log in and view their active loans, reserves, orders and routed serials. But what if a library staff member wants the same at-a-glance snapshot of a borrower? Currently, the Genie Borrower full record display shows the Borrower’s contact information and the serials routed to them, but not their active loans, reserves or orders. However, with some additional entries in the MyReports.config file, you can create hyperlinks to bring up this information with a single click.

Genie_Borrower_Full_with_links Each hyperlink is essentially a pre-created search into the appropriate Genie module (loans, serials, orders and reserves) to find records for the selected borrower. It’s the same as going to that module and searching for that borrower, but reduced to a single click!

To add these links to your Genie Borrower full record display, open the MyReports.config file in a text editor such as Notepad++ (making a backup of your existing copy first, of course) and scroll to the BorrowerFull report. Add the following lines after all the other fields in the report:

<Field Display="&lt;br/&gt;&lt;b&gt;View More Information for this Borrower&lt;/b&gt;">%%Label</Field>

<Field Name="BorrID" Display="" Header="&lt;a href=&quot;reserves_report.aspx?TN=Reserves&amp;QY=find%20(ResStatus%20%3Dactive)%20and(ResBorrID%20ct%20" Footer=")&amp;MR=20&amp;NP=255&amp;RL=0&amp;DL=0&amp;CS=0&amp;AC=QBE_QUERY&quot;&gt;Active Reserves&lt;/a&gt;" />

<Field Name="BorrID" Display=" " Header="&lt;a href=&quot;loans_report.aspx?TN=Loans&amp;QY=find%20(LoanBorrID%20ct%20" Footer="%20not%20(LoanDateReturned%20%3D*)&amp;MR=20&amp;NP=255&amp;RL=0&amp;DL=0&amp;CS=0&amp;ReportName=LoansByBorrower&amp;AC=QBE_QUERY&quot;&gt;Active Loans&lt;/a&gt;" />

<Field Name="BorrID" Display=" " Header="&lt;a href=&quot;orders_report.aspx?TN=Orders&amp;QY=find%20(OrdStatus%20%3Dnew)%20and(OrdReqID%20ct%20" Footer=")&amp;MR=20&amp;NP=255&amp;RL=0&amp;DL=0&amp;CS=0&amp;AC=QBE_QUERY&quot;&gt;Active Orders&lt;/a&gt;" />

<Field Name="BorrName" Display=" " Header="&lt;a href=&quot;serials_report.aspx?TN=Serials&amp;QY=find%20(SerRouteList%20%3D" Footer=")&amp;MR=20&amp;NP=255&amp;RL=0&amp;DL=0&amp;CS=0&amp;AC=QBE_QUERY&amp;ReportName=SerialsRouteMaint&quot;&gt;Serial Routing Lists&lt;/a&gt;" />

The first line is a heading and the next four are each a canned query, using one of the Borrower fields (either BorrID or BorrName) as a parameter. Some of the queries include other parameters, like limiting reserves, loans and orders to active ones only, and specifying which Genie report to use to display the results.

If you prefer not to have each link open the results in a new browser window or tab, just remove


from each line.

The Serial Routing Lists link in the above duplicates the Manage routing lists for this borrower link that may already be present on the Borrower full display, so you may wish to disable that by setting ShowManageRouteListLink=”false” in the BorrowerFull report header.

Please feel free to contact us for assistance adding these lines to your Genie MyReports.config file, or customizing them further.

Copying an older Genie OPAC report design

by Kathy Bryce Thursday, June 03, 2010 8:20 AM

I was working with a long-time Genie client yesterday who was getting very frustrated that a new report for her Genie OPAC was not showing selected fields. She had scrutinized the code over and over again, checking that she had the syntax right. To create this new report she had copied the code from an existing report, which usually is a great idea. However in this case the report dated from an early version of Genie and referenced Form="GenieBrief" in the first line. In older versions of Genie, you needed to put any fields that you wished to show in a brief OPAC display into a TextWorks form called GenieBrief. Hence her report showed obvious fields like Title etc. but not CatSerHoldings, which is the one she wanted to add. We removed the Form="GenieBrief", reset Genie and the field was then visible.

Month List