Sam Tyson
Sam Tyson

Sam Tyson

Senior Software Engineer
About :

Sam works in many different roles, including software design/development/support, testing, documentation, administration, web design, and management. Most focus is on web application development and maintenance.



jQuery, HTML, JavaScript, Usability, CSS, Certified Scrum Master (CSM), C#, VS.NET, ASP.NET, ASP, XML

Subscribe to Sam Tyson's RSS feed and never miss a post.

Posts by Sam Tyson:

Sam Tyson
November 18, 2016

Adding customizations in Dovetail Agent, as of version 13, incorporates numerous changes that make the application easier to customize and extend.

Stepping through a simple example will demonstrate how those changes make it easy to add a customization.



This example shows a customization to enhance the console, adding some eye-catching color for Cases that have a severity level that needs attention. If a Case has a Medium severity, the row should be pink, orange for a High severity Case, and if a Case severity is Urgent, then make the row red.

By default, all rows in the console have a white background, so adding some colors will make those cases stand out. Cases with severity levels below Medium will still have the white background.



To accomplish this customization, the Cases with raised severity shown in the Case grid on the console need to have

Sam Tyson
May 28, 2015

As Views become more and more complex, the View becomes less about displaying model data, and more about interactions. These interactions tend to be chunks of logic that need to be used in multiple views.

In Dovetail Agent and Dovetail SelfService, Marionette Behaviors are used to apply this logic to view elements.

What is a Behavior?

In the Dovetail applications, there are behaviors that apply code to elements and patterns that are repeated frequently.

One of the best examples in Dovetail Agent is the Date Picker. The Date Picker behavior sets up a date picker control for each element that contains a ‘date-picker’ class. The value of the picker is synced to the view’s model with the attribute being the same name as the id of the picker.

What that means is that for any input field in a form

Sam Tyson
November 7, 2012

One of the best things about Dovetail’s Mobile Agent is the ease of customization. Every customer has different business workflows, and that will lead to customization of their applications.


Cases are usually the primary activity in Mobile Agent, and there can be some custom activity that needs to be shown in the Case History. Getting those custom (or customized) activity entry records to show up in the history is a easy customization to do.


There are two things to do to get custom activity to be displayed. The first is to create the custom templates for the activity, and the second is to register the new template with Mobile Agent.


All of the activity templates derive from the ActEntryTemplatePolicyExpression class, so the new custom template needs to do the same. Here is an example of a custom

Sam Tyson
August 31, 2012


Since I use BOLT almost everyday as a developer, I committed some time to upgrade the look and feel of the app.  In the process of the upgrade, I also added many improvements to the html, javascript, and sql.


Twitter Bootstrap


The big change was to update the CSS used, and I wanted to use (and learn) Twitter Bootstrap. Twitter Bootstrap is a powerful front-end framework designed for faster and easier web development. It is maintained by developers at Twitter, and has a great community of support.


Twitter Bootstrap was built to not only look and behave great in the latest desktop browsers (as well as IE7!), but in tablet and smartphone browsers via responsive CSS as well. Taking advantage of this in Dovetail Bolt makes it much easier to support and maintain.


For comparison, here

Sam Tyson
February 2, 2012

In Dovetail Agent, there has been support for a long time to integrate Microsoft Outlook into the email functionality. In the past this has been done by using Collaboration Data Objects (CDO), which is a 32-bit client library that provides access to Outlook-compatible objects through a COM-based API.

As customers (and Dovetail Software employees) upgraded to Office 2010 (x64), the Outlook integration solution that tried to load the 32-bit CDO ActiveX controls or DLLs did not work. The resolution for this issue was to migrate Dovetail Agent from using CDO to use the Outlook Object Model (OOM).

Opening the Session with Outlook

The first step was to get access to the Outlook Object Model (OOM). In Dovetail Agent 4.5, the method for opening a session was to create a MAPI session from CDO, and then log on using the default

Sam Tyson
January 31, 2011

Using the Pick API to reserve parts for part requests is usually one of the easier API calls made from the Logistics Toolkit. Just specify the part request and preference of picking from good or bad stock, and let the API go to work. The Pick API will continue to attempt to pick parts until it has reserved all of the inventory necessary, or run out of locations to pick from.

There are three basic result paths for the Pick API: success, error, and partial success. The return codes for the API fall into these 3 areas as well. When successful, the return code is 0. When there is an error, the return code is < 0 (negative), and when there is partial success,

Sam Tyson
January 11, 2011

On occasion it is nice to be able to select and copy the contents of a column from a table element. Using jQuery, this is a simple task that takes advantage of the following jQuery features:


Event Handling – for the double-click of the column header Selectors – to determine which DOM elements to process Traversing – start from a TH that is double-clicked and find which column of the table it represents, then find all of the column TDs Iteration – process each of the TDs in a column Attributes – get the text for each TD, and change the TD’s Class


With a standard-format table, it is easy to add an event handler to the header TH element. Click here to view a simple example of a such a table. It has a header and a body, and

Sam Tyson
January 10, 2011

In addition to the recent update to the Dovetail Software website, a new version of Dovetail Self Service was also put into place. The new site has a lot of new features, and was developed internally by the team of Kevin Miller, Josh Arnold, and Joey Vano, which was led by Gary Sherman.

The best feature of Self Service is still the ability to search the Dovetail Software Knowledge Base. Customers have access to this through Self Service for their own cases, and can also search all of the Solutions in the Knowledge Base as well.

One of the best new additions to Dovetail Self Service is the ability for customers to view their products, where they can download the latest version, explore each product’s documentation,

Sam Tyson
November 29, 2010



One of our Dovetail Agent customers ran into an issue trying to log an email that contained extended ASCII characters. One of the email pages supports creating emails with multiple file attachments, and uses a VB component called aspSmartUpload to process the email form. The issue in this case is that aspSmartUpload (version 3.3) does not have support for CodePage recognition, so extended ASCII characters don’t get passed through in the correct character set. The email would be sent correctly, but the email history was being saved to the database with the incorrect characters.



After vainly searching for a newer version of aspSmartUpload, it was decided to save the text fields before the form submission, and to retrieve and use the text data for the email history, without having to drastically change the email pages or

Sam Tyson
August 3, 2010

One of the common customization in Dovetail Agent is changing the columns that are shown in the console. Columns are typically added, removed, or reordered, depending on the business requirements and workflow of a company.

In Dovetail Agent 4.3, the columns can be sorted dynamically by each user, and changes have been made to improve performance of the console by returning pages of records instead of all the records in a queue or wipbin. In Dovetail Agent 4.4 the process of getting the data has been improved, but is very similar in how the code is customized.

Since customizing the columns is a common task during implementation of Dovetail Agent, going through the process here as a reference should help future endeavors.

There are three pages that need to be changed to customize the columns

← Older posts |

International: +1 (512) 610-5400
Toll Free: 1 (800) 684-2055