Author: Sam Tyson

Senior Software Engineer

Sam Tyson
Sam Tyson

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:

Converting from Clarify Desktop to Dovetail Agent (part 3)

July 16, 2010 Welcome to part 3 of the series on converting an application from the Clarify Desktop environment to work in Dovetail Agent/Admin. The Employee Manager Utility (EMU) is being migrated into Dovetail Admin, and will provide the tools needed to manage workgroups and the employees that are assigned to them. In the installment of the series, the functionality for the Add... button of the form is going to be implemented. This is going to be a different method that what is normally used in Dovetail Admin due to the fact that workgroups are actually just elements in the WORKGROUP user defined list. EMU adds a lot of information and configuration capability for a workgroup, but there needs to be a record in table_workgroup to hold the details.   The Add... button has a small hint that it will have different behavior…

Converting from Clarify Desktop to Dovetail Agent (part 2)

July 15, 2010 This is the second installment of a series of posts on migrating applications/enhancements from the Clarify desktop application to Dovetail Agent features. The plan was for this post to cover converting Clarify Forms into Dovetail Agent/Admin pages. That is a great idea, but a very ambitious goal for a single post. I will be making a few posts along this line instead, trying to highlight the best practices and throw in a good amount of example code to help pave the way for such a conversion.   The example conversion of Employee Manager Utility (EMU) from a Clarify desktop integration to a new feature for Dovetail Agent and Dovetail Admin has a lot of possibilities for things to talk about. There are all kinds of controls used on the main form: a filtered grid, multiple tabs, checkboxes, text boxes, dropdowns,…

Converting from Clarify Desktop to Dovetail Agent

July 12, 2010 This is the first installment of a new series of posts on migrating applications/enhancements from the Clarify desktop application to Dovetail Agent features. There are usually a few components involved – schema changes, customized forms, and custom code – that all need to be converted in some form or fashion. For this series of posts, I will be migrating the Employee Manager Utility (EMU) from a Clarify desktop integration to a new feature for Dovetail Agent and Dovetail Admin. EMU is part of the Administration Series, and was last modified when Dovetail Software was still known as First Choice Software. The first things to do is to examine the Employee Manager Utility product. EMU is an administration tool that allows an administrator to associate employee properties (such as queues, office location, supervisor, and resource configuration) to a workgroup. New employees…

Use Dovetail SDK in .Net

June 21, 2010 One of our customers ran into a roadblock trying to migrate custom projects over to Dovetail SDK. The primary issues were getting the right references set up for a project, then creating and referencing the database objects using APIs in the various Dovetail SDK toolkits. I was asked to put together a sample project as a guide for getting a project underway, so I wanted to document that process here and have this also serve as a guide for future projects. In Visual Studio, I created a new Console Application to hold the example, and added a few references to the project. The core of the project is the Dovetail SDK, so the first reference is to fcSDK.dll. This DLL has the core of what the project needs to create the required application and session objects, and provides to tools…

Dynamically Loading jQuery plugins

May 7, 2010 In previous iterations of Dovetail Agent, there have been jQuery plugins (i.e. spellCheck) that could potentially be used on any page in the web application, so each file containing the jQuery plugin code actually included on every page so the plugin would always be available for use.   This was accomplished with a server-side include file, and doing a Response.Write method for each included file:   Response.Write(''); This serves its purpose well, but the downside is that only a small percentage of the pages actually need the plugin. A slight change to the mechanics of including the files allows the plugin to be available only when required.   First, the Response.Write is removed from the server-side include file. Next, some new code gets added to the client-side page that handles usage of the plugin:   $(document).ready(function() {     var $spellCheckAreas = $("textarea[id]:not(:disabled)");…

Running mklink in NAnt

February 5, 2010 Since there is not an executable for mklink, it took me a minute to figure a good solution to running mklink as a target in my build script.   The NAnt has an exec task that is used for running command line targets, but it requires an executable as its target. The command shell works in this situation, so I just need to exec the command shell, and have it execute mklink as its target.   Here is my NAnt target:   <exec program="cmd" commandline="/c mklink /d mobile\source\CustomControllers customizations\Controllers"/>  

Transitioning Beyond 255 Transitions

January 29, 2010 In Clarify, Logistics and Quality both use transitions to determine how a request moves from one condition to another. To change a condition, a transition must be defined between the two conditions for that part request type. To restrict access to critical part operations, you can administer permissions according to privilege classes. In complex installations, the number of transitions across both business areas can easily reach the imposed limit of 256 transitions. This limitation can truly impose headaches when the transitions cannot be accurately configured to match the business process. Dovetail Admin can also be used to configure the transitions, and now it does not enforce the same limitation. It does use the same mechanism for storage, so a little bit of work needs to be done to allow more transitions to be set up, and using Dovetail Agent (or…

Using jQuery to check all CheckBoxes in an iframe

January 21, 2010 In Dovetail Admin, there are a few pages where there is an option to check or uncheck a list of checkbox controls that are in an iframe. The Select All and Unselect All buttons perform the action, and using jQuery the codes becomes really simple and efficient.   The code that the buttons use is shared, and the true/false value is passed in to the function to check or uncheck the boxes.   The old code gets the iframe, gets all of the input fields, and then loops through all of the input fields. As it loops, if the field type is a checkbox, then the field’s checked attribute is set to the true/false value that was passed in.               Here is the original function:   function SetAllCheckBoxes(bOnOff) { var the_iframe= document.getElementById('priv_classes'); var doc = the_iframe.contentWindow.document; all_fields = doc.getElementsByTagName("input"); var element_count = all_fields.length; for(i = 0;i <…

Removing an iframe by using AJAX

November 25, 2009 One of our core products at Dovetail Software is our classic ASP application, Dovetail Agent. This application has been in production for many years, and is very stable and reliable. However, since it is a classic ASP application, there is a lot of room for improvement. I recently upgraded the Notification feature of the application. Dovetail Agent is a web application that has a main page (the console), and notifications need to be delivered to users automatically, without the users having to find them manually. In the previous releases of Dovetail Agent, this process used an iframe control on the console. The source page for the iframe control would query the database for new messages. If new messages were found, a hyperlink would be displayed on the console, and a window for the notifications was opened. The source page for…

Developer Walkthrough – Workflow Event Handling

September 17, 2009 Dovetail SDK is a software development kit for writing applications, using .NET, to access Clarify™ databases. One of the more common requirements for objects created for Clarify is performing workflow operations on those objects, such as assigning cases or dispatching change requests. Dovetail SDK provides a powerful set of tools to make workflow operations easy to implement. This guide explains how to get started. Using WorkflowManager for Workflow Actions Dovetail SDK supports the following Workflow Methods for Queueable Objects in Clarify with the WorkflowManager object:AcceptAssignDispatchForwardMoveRejectYankChangeStatusQueueable Object Types that are currently supported:CASE, SUBCASE, DEMAND_DTL, TASK, OPPORTUNITY, CONTRACT, BUG, PROBDESC, DIALOGUEAll of these methods follow the same basic model for parameters. For example, the Dispatch method takesid number of the object being dispatchedtype of object being dispatchedqueue that the object is being dispatched totime that the dispatch occurredlogin name of the user performing the…