<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>SkyBlog :: A Navitaire NewSkies Development Blog &#187; New Skies</title>
	<atom:link href="http://blog.coltcooper.com/category/new-skies/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.coltcooper.com</link>
	<description></description>
	<lastBuildDate>Sat, 05 Jun 2010 19:38:21 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Enable &#8216;Enter&#8217; Key in SkySales Forms</title>
		<link>http://blog.coltcooper.com/2010/06/enable-enter-key-in-skysales-forms/</link>
		<comments>http://blog.coltcooper.com/2010/06/enable-enter-key-in-skysales-forms/#comments</comments>
		<pubDate>Sat, 05 Jun 2010 19:38:21 +0000</pubDate>
		<dc:creator>Colt</dc:creator>
				<category><![CDATA[New Skies]]></category>
		<category><![CDATA[SkySales]]></category>

		<guid isPermaLink="false">http://blog.coltcooper.com/?p=63</guid>
		<description><![CDATA[If you&#8217;ve developed in SkySales or even .NET Web Forms you probably have noticed the lack of support for traditional &#8216;enter&#8217; key behavior on forms. This is due to the .NET methodology of hijacking the return key behavior with some javascript events. Since SkySales is based on .NET Web Forms, the problem rears it&#8217;s ugly [...]]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;ve developed in SkySales or even .NET Web Forms you probably have noticed the lack of support for traditional &#8216;enter&#8217; key behavior on forms.  This is due to the .NET methodology of hijacking the return key behavior with some javascript events.  Since SkySales is based on .NET Web Forms, the problem rears it&#8217;s ugly head there as well.  And, if it does end up working but you have multiple form inputs and buttons on the page, it may not trigger the right submit button.</p>
<p>Out of the box, SkySales loads up the submit form button with a few actions such as client-side validation in the form of javascript functions like: &#8220;validate(this)&#8221;.  That particular validate method determines which form elements are child members of the control submitting the form and then runs the appropriate validation for each element on the form.  We&#8217;ll use a similar method for tackling the enter key problem.</p>
<p>For this fix, I&#8217;m assuming the use of the jQuery framework (which has officially been shipping with SkySales since the 2.x version).  The following **code is how we&#8217;ll capture the enter key from the XSLT file:</p>
<p><code>&lt;script langugage="javascript"&gt;<br />
$(function()<br />
{<br />
$("input[@id^='&lt;xsl:value-of  select="/*/@clientID"/&gt;']").keydown( function(event) { checkEnter(event, '&lt;xsl:value-of select="//CONTROLS/LINKBUTTONSUBMIT/*/@id"/&gt;'); });<br />
});<br />
&lt;/script&gt;</code></p>
<p>Notice in the code above that we are just checking for inputs that start with the clientID of the SkySales control we are using.  If your control is inside a control group, this code should be in the control group XSLT so it covers all of the elements inside the group.  If you had some select boxes on your form that you wanted to add enter key support on, you would simply expand the jQuery selector to **include select elements:</p>
<p><code><br />
$("<strong>select[@id^='&lt;xsl:value-of  select="/*/@clientID"/&gt;'],</strong> [input[@id^='&lt;xsl:value-of  select="/*/@clientID"/&gt;']")... etc<br />
</code></p>
<p>The checkEnter function will basically create a new function for client script residing in the onClick method for the button id that is passed in, and then fire the href event.  This function should reside in a common javascript file that gets included on every page.  The source can be downloaded <a title="checkEnter" href="http://coltcooper.com/downloads/checkEnter.js" target="_blank">here</a>.</p>
<p>I believe this small bit of code can help your SkySales site out by helping it behave the way people expect pages to behave on the web.</p>
<h5>** Special note **:  The code samples work with earlier versions of jQuery.  The current version doesn&#8217;t require the @ symbol in front of attribute identifiers so modify your code appropriately.</h5>
]]></content:encoded>
			<wfw:commentRss>http://blog.coltcooper.com/2010/06/enable-enter-key-in-skysales-forms/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>&#8220;Booking Modified By Another User&#8221; Error</title>
		<link>http://blog.coltcooper.com/2009/11/booking-modified-by-another-user-error/</link>
		<comments>http://blog.coltcooper.com/2009/11/booking-modified-by-another-user-error/#comments</comments>
		<pubDate>Mon, 09 Nov 2009 14:06:29 +0000</pubDate>
		<dc:creator>Colt</dc:creator>
				<category><![CDATA[New Skies]]></category>
		<category><![CDATA[SkySales]]></category>

		<guid isPermaLink="false">http://blog.coltcooper.com/?p=19</guid>
		<description><![CDATA[On a recent implementation of NewSkies implementation of SkySales, I would occasionally run into a strange error from the NewSkies application server: “Booking Modified By Another User”.  It seemed to occur only after a booking was initially created, then was modified again...]]></description>
			<content:encoded><![CDATA[<p>On a recent implementation of SkySales, I would occasionally run into a strange error from the NewSkies application server: “Booking Modified By Another User”.  It seemed to occur only after a booking was initially created, then was modified again.  On the second attempt at committing the booking, core (the app server) would occasionally throw this error.</p>
<p>This error is triggered when the application server detects that the last updated date/time of the booking in the database doesn’t match what it has in memory.  While this is a valid sanity check to prevent the application server blindly overwriting a booking in the database, we had no idea who or what was modifying the booking in between our commits.</p>
<p>After some digging, we discovered that the last user updating the booking was a process account (ProcessMaster).  This can be seen when whatever action it took left a trace in the booking history (viewed in SkySpeed).  </p>
<p>As Navitaire doesn’t seem to have a solution for the problem, the best recommendation was to re-retrieve the booking when this error was found and try the commit again.  This would refresh the application server with the most recent copy of the booking and reset things on the web server as well.</p>
<p>This unfortunately has a side effect of killing any changes the user has just requested to their booking.  It’s less painful if they have to repeat just one screen of changes, but it’s worse if they just finished a change process involving a number of steps.</p>
<p>If you absolutely had to be graceful with the customer – you could write a lot of code to queue up and retry those changes made.  Unfortunately, the most common (and cheapest) approach is to throw up your hands with an error and blindly ask the customer to repeat to you what they just did.</p>
<p>The bottom line is this:  Don’t assume that once a booking is created, you’re the only one working with it.  What I’ve described above is a corner case, but a well-known one at that.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.coltcooper.com/2009/11/booking-modified-by-another-user-error/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Managing New Skies Settings</title>
		<link>http://blog.coltcooper.com/2009/06/managing-new-skies-settings/</link>
		<comments>http://blog.coltcooper.com/2009/06/managing-new-skies-settings/#comments</comments>
		<pubDate>Sat, 20 Jun 2009 05:12:10 +0000</pubDate>
		<dc:creator>Colt</dc:creator>
				<category><![CDATA[New Skies]]></category>

		<guid isPermaLink="false">http://blog.coltcooper.com/?p=11</guid>
		<description><![CDATA[Configuration settings management in New Skies can plague airlines of all sizes.  I've created a tool to ease the pain of managing configurations between multiple environments.]]></description>
			<content:encoded><![CDATA[<p>Configuration settings management in New Skies can plague airlines of all sizes.</p>
<p>To be successful at change management in New Skies, carriers resort to a gatekeeper concept where a single person or group is responsible for changes in the development / test / production environments.</p>
<p>The tools that ship with New Skies out of the box fall short of managing settings across multiple environments.  This is either a manual process of having two management windows open at the same time and tediously ensuring the settings are the same in both environments or a request is put in to an understaffed Navitaire operations group to run a database script to bulk copy settings between environments.  I’ve developed a tool that makes settings management between environments simple.</p>
<p>The Settings Manager tool has two modes, <strong>Compare</strong> and <strong>Sync</strong>.  Compare allows the comparison of two settings snapshots.  These could be brand new snapshots between two environments or even two different historical snapshots of the same environment.</p>
<p>
If you’re a publicly held company in the US then you’re all too familiar with Sarbanes Oxley requirements.  New Skies is an IT system that directly affects financials, therefore, you’ll need the ability to audit changes to those settings.  The NewSkies database schema fails to provide an auditing of system settings; only saving information on the time a setting was last changed and the user who changed it.  Once a few changes to the same setting has been made, the original information is overwritten.</p>
<p>The Settings Manager can be scheduled to take snapshots of settings on a periodical basis and archive them for auditing.  Snapshots are then archived on disk – there’s no database to worry about or maintain.</p>
<p>Feel free to <a href="mailto:contact@coltcooper.com">contact me</a> for further info.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.coltcooper.com/2009/06/managing-new-skies-settings/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
