|
Major photo developing company migrates Synergy OpenVMS app to new platform, gives it fresh new UI, dramatically increases performance, and significantly reduces maintenance costs
Harrier LLC is the leading digital photo printing and digital image personalized card and gift production company in the United Kingdom, processing up to one million images per day. Companies such as HP (snapfish.co.uk), Tesco, and Hallmark use Harrier’s highly automated custom production line to fulfill their customers’ orders for everything from photographs to greeting cards, calendars, books, and mugs.
Due to the number of packages produced, Harrier has a considerable logistics and mail sorting operation, which is handled by its Synergy/DE-based application, Abbot. Abbot records incoming orders, communicates with the appropriate workflow systems, produces address labels, calculates least cost mailing mechanisms, interfaces with mail carriers and couriers, initiates progress update messages to be sent to partners, and communicates with internal accounts systems and general reporting.
The Synergy/DE-based Abbot application has evolved with Harrier’s business from a time when it just managed simple photo developing, printing, and dispatching to today’s high-tech, multi-tiered operation. Unfortunately, the application’s green screens and terminal emulation gave it a dated appearance that didn’t accurately reflect its underlying sophistication. More significantly, Abbot was still running on an OpenVMS Alpha cluster, which was expensive to maintain and desperately needed upgrading. The question was whether to upgrade to OpenVMS Integrity or to migrate to Windows. Harrier ultimately decided on Windows, primarily because the majority of its developers and support staff had more Windows experience. “OpenVMS is incredibly robust, which is great, but also a Catch-22 because our developers and support staff have had minimal work to do on it and therefore haven’t kept up their VMS skills,” explains Andrew Bascombe, IT Director at Harrier. “Our team is predominantly skilled with Windows, so we decided to go that route.”
To get the project done quickly, and because their internal team was overcommitted, Harrier called on Synergex Professional Services Group to assist with the migration and training. After upgrading to the current Synergy/DE version, 9.5.1a, they began the platform migration. Soon a number of the programs that make up Abbot were migrated to Windows, but these still used xfServer to access data on the Alphas. Only when all programs had been migrated to the Windows environment did Harrier move the data, which was a very straightforward process—even in an environment where many corporate customers expect 24x7 service. Harrier negotiated a 36-hour downtime with its customers, and completed the migration ahead of schedule.
The impact of the migration has been significant. Harrier’s data-intensive applications run considerably faster in the Windows environment than they had on the old Alpha hardware—up to 200 times faster in some cases. Maintenance costs of the new Windows servers are significantly lower, the new OS is much easier for Harrier’s Windows-experienced team to support 24x7, and the UI is fresh and current. Harrier is now exploring how it can better exploit the benefits of Synergy .NET to more fully integrate with its workflow systems. The initial development in this area is already underway. “With all of these benefits, I would not hesitate to recommend this upgrade path to others, and indeed did so when I met others in a similar situation at the recent SPC in Oxford,” concludes Bascombe.
Note from Synergex:
Synergex also recommends the integrity path for customers on Alpha systems. With Integrity, you will also see performance improvements and lower maintenance costs. Contact your Synergy/DE account manager for assistance with planning your migration.
Jodah Veloper and His Team Are Excited about the New Product Videos
If you haven’t already, you need to check out the new how-to videos on the Synergy/DE Web site. These free videos are each between 5 and 20 minutes long, and cover a range of new technologies you can use with today’s Synergy/DE to spiff up your UI and enhance your applications in other ways.
Jodah Veloper and his team are raving about the videos – Jodah and Bigbah Smann are excited about all of the things you can do to give your existing application a modern UI. Manny Jurr and Mark Etting are impressed with the ability to automate the creating of PDFs, and the impact this will have on Sales. Check them out for yourself on our Web site.
Internal runtime failure: HATFNC when using DD_ routines
Question: I am trying to use the Repository subroutine library (DD_ routines), but when I try to run the following code using DD_FIELD, the application hangs or I receive an error. For example:
%DBR-F-RUNERR, Internal runtime failure: HATFNC
%DBR-I-ERTEXT, Invalid hatfnc code: ‘ ‘ – the code stream has been corrupted by a clear statement
.main
record
fieldName ,a30 ,”CUST_KEY”
structName ,a30 ,”CUSTOMERS”
fieldArray ,[10]a30
strName ,string
.proc
u_start
DD_INIT (dcs)
DD_STRUCT (dcs, DDS_INFO, structName, s_info)
DD_FIELD (dcs, DDF_SLIST, 100, fieldArray)
strName = “Fields in Structure: “ + %atrim(structName)
u_message (strName)
DD_FIELD (dcs, DDF_INFO, %atrim(fieldName), f_info)
u_message (%string(dcs.error))
.end
Answer:
When the Repository DD_ routines were created, they were designed to work with both pseudo arrays and real arrays, and they cannot tell if the array being passed is large enough or not. Because of this, you are required to pass the number of elements in the array. If the number passed is larger than the actual number of elements in the array, the subsequent variables on the stack are corrupted, and the results are unpredictable.
As there is a maximum of 999 fields per structure or group in Repository, we recommend making the returned array (fieldArray) a [999]a30.
Spotlight on CodeExchange
Access United States Postal Service information from your Synergy application
Did you know that Synergy applications can directly access United States Postal Service (USPS) information? The US Postal Service provides a number of web services that enable you to get address information, calculate prices, create shipping labels, get delivery information, and more. And Synergy applications can access these web services by using two of the many APIs that are part of the Synergy Language: the HTTP API and the XML API. For an example, see the CodeExchange submission uspsWebService, which includes a routine that accesses USPS web services for address information and for price calculation. Note that this routine has been updated (along with many other CodeExchange submissions) for Synergy/DE 9.5. It can be compiled to work on Windows, UNIX, and OpenVMS and can be used as a starting point for accessing any of the USPS web services. All you need to use uspsWebService is a USPS user ID, which can be obtained for free by registering at http://www.usps.com/business/webtools. For more information and the code, see CodeExchange.
CodeExchange is available for free to supported Synergy/DE customers. Be sure to take advantage of this great resource, and don't forget to submit your own CodeExchange entries so that other Synergy developers can benefit from your cool code.
Synergy/DE pros, see if you can answer this question!
What is the result of %char(2764)?
a. the lowercase letter d
b. a black heart character
c. the ASCII character whose value is decimal 204
d. a runtime error
Read a selection of recent articles from around the web
Windows
Unux
OpenVMS
Java
Other
Reduced Hours for Synergy/DE Sales and Support on August 25
Synergex to close early
On Thursday, August 25, Synergy/DE Sales and Developer Support hours will be 7:00 AM to 11:00 AM Pacific Time. If you anticipate needing our assistance outside of these hours, please contact us at synergy@synergex.com to make arrangements.
Synergex Holiday Reminder
Our offices will be closed on Monday, September 5, for Labor Day
If you anticipate needing our assistance on this day, please email us at synergy@synergex.com to make arrangements.
|
|
|