$7.00 U.S. Inside: MultiValue in the Cloud International Plus! Both Text and

® HTML: Multi- part E-mail SSpecpecThE Multivalue tettchnologyrr ummumagazine i Sep/Oct 2011

Are Persistent Connections a Thing of the Past?

intl-spectrum.com Advanced 6 Spec_Layout 1 6/8/11 6:24 PM Page 1

Advanced technology for breakthrough applications

This makes applications fly.

Embed our post-relational database if you Caché eliminates the need for object-relational want your next application to have breakthrough mapping. Which can reduce your development features, run withC abclahzéing speed, be massively cycle by as much as 40%. scalable and require mi®nimal administration. Caché is available for all major platforms – InterSystems has advanced object and it supports MultiValue development. technology that makes it easier to build applica- Caché is deployed on more than 100,000 tions with XML, Web services, AJAX, Java, and .NET. systems worldwide, ranging from two to over And Caché can run SQL up to 5 times faster than 50,000 users.

relational . ™ For over 30 years, we’ve provided advanced With its unique Unified Data Architecture , technologies for breakthrough applications.

InterSystems.com/Advanced6WW

Download a free, fully functio©n 20a11l ,In tnerSoys-tetmism Corpeor-altiomn. Alil rtig hctso repseryve do. Inft eCrSyastecmhs Céach, éo is ra r ergiesteqredu treadsemta rikt o f oIntnerS yDsteVmsD Cor,p oaratti on. 7-11 Adv6Spec International

® SSpecpecThE Multivalue tt terrchnologyumum magazine

features I September/October 2011 MultiValue Communications: 6 The Persnickety Persistence Problem For decades, MultiValue Useful Tips on Migrating from Legacy PICK Your applications have followed the model 8 system sends up certain red flags when its performance has of having an always active, persistent degraded. These signals might include missing your maintenance connection to the server. This worked windows, users complaining about slow system response times, well when we had control over the or unreasonably high system maintenance fees. Perhaps your connection, primarily by using a customers are saying the application needs modernization, but the dedicated cable to a serial RS-232 port programming backlog is six months and growing. How do you solve physically located on a board in the these problems? Replace your legacy PICK system! By Dr. John machine. Then came networks, where F. Nunziato, U2 Data and Application Migration Specialist, everything is dynamic and out of our Rocket Software control. Yet in 2011, how many of our MultiValue application still stick to trying Sending E-mail from MultiValue Programs - Part 5: to emulate the old persistent connection 12 Creating and Sending E-mails with HTML and Text Sections In the early days of e-mail, text was King. If you dared use model of the last century? By Kevin King that horrible, evil, Microsoft Outlook mailer and sent HTML-based e-mail, you had better be wearing asbestos underwear, because you were going to get flamed. Today, HTML e-mail is the norm for all large businesses (at least in the USA), and the text-only pundits are considered to be somewhat Luddite. Then came mobile devices with small, hard to read screen sizes. What to do? What to do? Enter the Departments realm of multipart html/text e-mail. BY NATHAN RECTOR

From the Inside page 4 Business Tech: MultiValue in the Clouds Although there 22 are still concerns with Cloud Computing — data privacy, guaranteed page 16 From the Press Room service levels, etc. — it appears that the Cloud is here to stay. So Tech Tip page 28 what will it take to be able to deploy your MultiValue applications in the Cloud? (Hint — you are almost there already.) by Charles Clif Notes page 31 Barouch

Auditing Database Changes with UniVerse Indexing 24 Subroutines UniVerse has file triggers which can be used to call a subroutine whenever a new record is added, changed, or deleted from a file so that the change to the database can be recorded in an

International Spectrum and MultiValue audit trail for IT governance and compliance requirements. But full are registered trademarks of International blown triggers come with a certain amount of performance overhead. Spectrum, Inc. All other registered For simple auditing, using indexing suboutines with a new system trademarks are the property variable available at release 11.1 is a lighter weight alternative. By of the respective trademark holders. Clifton Oliver

INTERNATIONAL SPECTRUM September/October 2011 u 3

International From the Inside B y N a t h a n R e c t o r SpectrSeptemumber/October 2011 Nathan Rector President

Clifton Oliver I need your help in getting the mes- Issue: I’m not a writer Editor sage out that MultiValue is a modern, Well, truth be told, neither am I. Tracey Rector robust, solution-oriented platform My spelling is horrible. My grammar Layout that works well in a multi-system, makes Clif pull his hair out. (Editor’s mainstream environment. Note: I plan to bill Spectrum for a Are you interested? hairpiece.) And about every article I I’ve asked many people to write arti- write, he has to clarify at least one cles over the past few years, and I paragraph because he’s not quite sure have been rewarded with some very what I’m trying to say. Learn more about the MultiValue Symbol and see interesting articles. Most of these My suggestion is, don’t try to be a what MulitValue Technologies and MultiValue authors are techies like you, not pro- writer. Be yourself. Write the article as Communities exist to help you support and manage fessional writers. The best articles are if you are talking to someone or mak- your business and systems. To find out more visit the ones provided by the end users in ing notes on how to do something. http://www.intl-spectrum.com the marketplace. We can take that rough material and make it a finished product. MISSION STATEMENT International Spectrum I understand that writing can seem magazine’s editorial mission is to be the premier independent source of useful information for users, developers, and resellers daunting, and you wonder where to The article doesn’t have to be a Word of MultiValue database management systems, open systems find the time to do it. Well, we are document. It can be typed out in business database solutions, and related hardware, software, here to help. e-mail. Take an hour for lunch and use and peripherals. Published bimonthly, International Spectrum provides comprehensive coverage of the products, companies, The most common problems that new your smart phone to write the article. and trends that shape the MultiValue marketplace as well as the computer industry at large — helping its readers get the most authors have are: So, if you are worried about your writ- out of their business computer systems. • Don’t know what to write about ing — please don’t be. Let us address the polish of your articles. Trust me, • Company restrictions on propriety the International Spectrum Staff is code very good at doing this. • Not a writer and don’t know how Issue: Company Restrictions on Pro- m v .ENTERPRISE Mentor to create a finished article Pro prietary Code Issue: Don’t know what to write MO/E Native PICK about This can be a major hang up for a lot of people, but you don’t have to p c Verse PICK OA I can understand this one. I have to provide your company’s code in the come up with a topic for the “From article. You’ll have to describe the tm Power95 the Inside” every issue. It seems like problem you were solving and an out- REALITY this is the biggest issue, but in reality, line of the solution. R91 AP/PRO it is the easiest to address. The answer: m u l t i Verse Call me or e-mail me and ask. Many times the article is about a concept or suggested way of doing RPL I have a whole list of topics that something, and you can strip the I would like to see articles written coding examples down to a few lines m v •BASE about, but most of time I want to hear of code to show examples, without International Spectrum is published six (6) times per year at about the solutions you have devel- giving away anything your company the subscription price of $40.00 U.S. in the U.S.A.; $45.00 U.S. oped for your business. in Canada and Mexico; $50.00 U.S. for other countries. Single owns. copy rates are $7.00 U.S. in the U.S.A. and Canada, and $9.00 U.S. in all other countries. International Spectrum is published by If you are reading this and would like One of authors here at International International Specturm, Inc., 8956 Fox Drive #102, Thornton, CO to see a specific article in Internation- 80260; Tel: 720/259-1356; Fax: 603/250-0664 E-Mail: request@ Spectrum has this same problem. He intl-spectrum.com. Copyright 2011 International Spectrum, Inc. al Spectrum magazine, please feel free worked with his management, and All rights reserved. Reproduction in whole or in part, without to contact me and let me know. I can worked how to write the article to written permission, is prohibited. add it to my growing list of articles, cover the topic without using any of PRINTED IN USA webinars, and conference topics. the company code. Most of the code NEWS RELEASES/UNSOLICITED ARTICLES International Spectrum is eager to print your submissions of Continues on page 29 up-to- the-minute news and feature stories complementary to the MultiValue marketplace. Black and white or color photographs and diagrams are welcome. Although there is no guarantee a submitted article will be published, every article will be con- sidered. Please send your press releases, articles, and queries to: [email protected]. International Spectrum retains all reprint rights. twitter.com/intlspectrum intl-spectrum.com/facebook International Spectrum is a registered trademark and MultiValue is a trademark of International Spectrum, Inc. All other registered 4 u intl-spectrum.com trademarks and trademarks are the property of the respective trademark holders. MOBILE COMPUTING An essential part of business today is mobility. We store and access crucial data off-site more than ever before.

Your information needs to be accessible and yet still secure. ARE YOU READY? WE ARE. We are Revelation Software, creators of OpenInsight Development Suite 9.3, bringing you one of the best mobile computing and data encryption toolkits on the market. Go to revelation.com and take a test drive today.

PO Box 300 Brookvale, NSW 2100 Australia Phone: +61 2 8003 4199 Fax: +61 2 9332 6099 Email: [email protected] Web: www.revelationsoftware.com.au By Kevin King

MultiValue Communications The Persnickety Persistence Problem

ast issue we took a look at the look back at our history of persistent good, the bad, and the ugly of So if we can’t stop these connections. the Telnet protocol in the con- L failures, perhaps we should Though it may seem obvious, we text of our MultiValue applications. In remain tethered to persistent con- brief, the Telnet spec is nearly 30 years instead be focused on nections simply because of how we old, the terminal types emulated over minimizing their impact. communicate with our MultiValue ap- Telnet were antiques years ago, the plications using the Telnet protocol. protocol is implicitly insecure, and if ginning, the heresy of such a radical Telnet is a persistent protocol; as long that’s not enough, it drops connections recommendation is well appreciated. as there’s a channel of communication far too frequently. However, as we look another 30 years between the client and server, Telnet We also briefly mentioned SSH and Tel- into the future, perhaps radical think- works very well. Break that channel, net over SSL, and while these can pro- ing is exactly what we need, and now however, and things can get ugly. Con- vide improvements in security, they is exactly when we need it. nections are dropped, sessions are ter- do little to nothing to improve the re- If we’re perfectly honest with our- minated, and whatever was in progress liability of the connection. With miles selves, we have to admit that all of our at the time ceases to be in progress of cable and countless devices in the best planning will not prevent someone (barring some form of pre-established network that are out of our control, im- with a backhoe inadvertently digging a intervention). proving reliability of persistent connec- hole through the wires that are carrying Equally interesting, Telnet is a single tions is problematic. But consider this: all of our precious communications. It channel protocol. In other words, Might we improve reliability simply by happens. Moreover, networking equip- when you establish a Telnet connec- decreasing our dependence upon per- ment fails and with all these devices tion to your MultiValue system, you sistent network connections? between us and our information, some- establish each connection one at a On behalf of an industry that has been thing is definitely going to fail at some time. If that connection drops for any dependent upon Telnet from the be- time, and it’ll likely happen at the least reason, you can certainly start another convenient moment. connection but there is no provision in the Telnet protocol for redundant or Digital Version So if we can’t stop these kinds of fail- re-connectable connections to protect On-Line ures, perhaps we should instead be fo- cused on minimizing their impact. To against interruptions and disconnects. Therefore, and at the risk of sounding Scan Me! achieve that, let’s start by taking a brief alarmist, with Telnet we are all just one

6 u intl-spectrum.com blip away from getting disconnected at multiplied by hundreds or thousands In PHP, state management is handled the worst possible moment. For some, of clients can introduce a concern. much like MultiValue common vari- this may rarely happen. For others of ables. Simply set a “session variable” But back to the question: Do we re- us who seem to always be hundreds now and when you come back later ally need persistence? If the greatest of miles away from our systems, these that variable will still have its assigned advantage that persistent connections kinds of disconnects happen far too value. In a web context where each re- offer is state management, and espe- frequently. quest to the back-end server requires a cially where that state is always just separate and independent request, this Persistence has become so common one network blip away from oblivion, actually looks to the web application throughout the MultiValue world, I then there must be a better way. For- like a block of persistent memory. But would venture to say that most don’t tunately there is a better way, and the alas, it is a cleverly crafted illusion. think much about it until the network PHP language offers a stellar example hiccups and a connection is lost. THEN of one possible solution. Continues on page 20 we think about it as we establish a new connection, clear any rogue re- cord locks, check to be sure nothing was damaged or left hanging by the disconnect, and … possibly mutter a few questionable words throughout the process! With this in mind, do we REALLY need persistence? Is it an absolute necessity that we keep a live connection to our MultiValue servers all the time in order to maintain a dialogue with our appli- cations? Or do we simply continue to rely on persistent communications be- cause this is just a fact of Telnet life, and that’s the way things have always been done? Announcing… The greatest advantage of persistence is, of course, state management. With MITS Discover 7.2 a persistent connection to a back-end server there is a block of memory • Full Screen Dashboards available where we can store all sorts • Prompted Scorecards of information. Records can be read from disk into memory, manipulated • Browser-Based Mobile Device Access in memory for the entire length of the connection, and written out as the ap- plication sees fit. As long as nothing bad happens to the network, it’s all a beautiful thing. MITS Discover now supports the creation of full-screen There is of course a cost to all of these dashboards and scorecards. The Executive Dashboard scrutinizes high-level company metrics. A prompted connections. Each persistent connec- scorecard shows summary metrics for a particular tion requires some long term commit- vendor, customer or branch (as examples). Deliver ment of memory, and depending on reports and dashboards automatically on a schedule. the number of simultaneous connec- All summary metrics link directly to an underlying tions and data needed by the applica- interactive report. View your MITS data from an iPad or Android mobile device. tion, that can work out to be a pretty big chunk. There’s also the ongoing See MITS Discover 7.2 in action! network traffic for maintaining all of Call us today at 888 700 6487 these connections, and while Telnet it- or visit us online at www.mits.com self is really quite lightweight, anything ©2011 Management Information Tools, Inc. All rights reserved.

INTERNATIONAL SPECTRUM September/October 2011 u 7 By Dr. John F. Nunziato U2 Data and Application Migration Specialist, Rocket Software

Useful Tips on Migrating from Legacy PICK

Recognize When to Commit your IT department in order to assess to Migrating A typical migration involves resources and set realistic timelines. Your system sends up certain red a thirteen (13) to sixteen (16) Gather a description of IT department flags when its performance has de- personnel; record their experience graded. These signals might include week effort for applications level and area of expertise. Inventory missing your maintenance windows, with 2,000 programs, 500 your current hardware platform; list users complaining about slow system all system configurations, printers, response times, or unreasonably high PROCS and about 1,500 data and communications devices so that system maintenance fees. Perhaps files and dictionaries. you will be aware of the hardware you your customers are saying the applica- can reuse or need to purchase for your tion needs modernization, but the pro- new system. Remember to document Take Inventory of Your gramming backlog is six (6) months Current System and Write all third party software being used with and growing. How do you solve these Down a Wish List for the your system and research if that third problems? Replace your legacy PICK Future System party still supports and markets the system! This article will share the best A successful migration starts with good software. If that third party software is practices that Rocket U2 has learned planning. Collect information about no longer supported, now would be an through years of experience. You might be hesitant to undertake a migration. Are you worried about the cost or afraid to commit the time? How can you know how long a migration might take? You might be comparing the amount of suffering your current system is causing versus the pain you might experience while migrating to a new system. You are not alone. Many in the legacy Pick community are fac- ing these pains and questions. Read on to learn about the steps in the migra- tion process, and to get some tips that will help you along the way.

Digital Version On-Line

Scan Me!

8 u intl-spectrum.com describe each step so that your staff can reference this documentation at each stage of the process. Rehearse your “Go-Live” as many times as pos- sible, to uncover any issues that might arise before implementation and devel- op a workaround or resolution to each prior to the “Go-Live” date.

How Long Does the Migration Process Take? How Can I Make It Go More Smoothly? A typical migration involves a thirteen (13) to sixteen (16) week effort for ap- plications with 2,000 programs, 500 PROCS and about 1,500 data files and dictionaries. The migration is done in stages: the conversion of programs, excellent time to consider an improved thing works properly in the new envi- “Unit Testing” by the technical staff, replacement or “workaround” for that ronment. user testing, pre and post “Go-Live” test- software! ing/support, and fixes/workarounds. Make clear and concise documenta- After recording your existing setup, en- tion. Craft a checklist and assign each Continues on page 10 vision your ultimate wish list for soft- task to the proper resource. Carefully ware and hardware enhancements for the new platform. Don’t be shy, aim high. You are no longer going to be re- stricted by an antiquated system! This transition gives you an opportunity to address long needed requirements,  such as compliance, High Availability,  and software or network moderniza- tion. Next identify the number of program files, PROCS, PARAGRAPHS, data files and dictionary files that are currently being utilized. Although you might find this the most tedious stage described so far – shouldn’t you really be aware of this level of detail about your cur- rent system?

Keep It Clean and Neat and Practice Makes Perfect Clean house by tidying up your appli- cation. Sign up your users to be testers during the migration process, and man- age expectations during the “Go-Live”. Be sure to emphasize to the people testing the system that they will be  held accountable for ensuring every- 

INTERNATIONAL SPECTRUM September/October 2011 u 9 Useful Tips on Migrating results in a 50% faster Core Migration PICK from Legacy PICK Process than performing a manual pro- Continued from page 9 cess. This time savings has been prov- PROFESSIONAL en by performing similarly-sized migra- Choosing the right target platform is Don’t make the mistake of placing tions with and without using the tool. your career in the hands of just ANY your most important decision. You search firm. We are professionals who want to preserve your company’s If you are on old hardware, the clock understand the importance of investment in business logic, while is ticking. If your legacy system has the CONFIDENTIALITY and RESPECT of a job search, and our database of clients having minimal impact on your users business logic you need but is lacking is one of the largest in the country. and production environment. The U2 in performance or appearance, a migra- Unlike the rest, we will work in YOUR best interests’ to help you further your databases offer the most in terms of tion can open the door to using modern career. Because of our dedication and compatibility, price, performance, se- technology to solve these issues. Fol- professionalism, we are recognized as lection of tools for application modern- lowing the steps outlined above, you the leaders in the PICK/UniVerse/Unidata placement industry in the Tri-State area ization and more. can achieve a successful migration to and throughout the U.S. So if you are a more modern database and open the With the U2 Migration Factory, Rocket tired of putting yourself at the door to a brighter, longer future. is mercy of the rest. Software facilitates the migration pro- cess, allowing it to be as painless and CALL THE BEST! Contact... Dr. John Nunziato Matt Hart seamless as possible. Rocket U2 has the leading truly MultiValue databases has many years of expe- EXECU-SYS, LTD in the industry and has completed over rience (over 1000 imple- 1 Penn Plaza, Suite 3306 1,000 migrations worldwide. A free New York, NY 10119 mentations) optimizing trial migration can be performed as a (212) 967-0505 U2 performance on a wide range of (800) 423-1964 x 302 Proof of Concept (POC) to guide the Fax: (212)947-8593 customer in the planning and conver- platforms during migrations and system Email: [email protected] sion stages of the migration process. health checks. Rocket U2’s Automated Migration Tool Consultants Needed Nationwide

10 u intl-spectrum.com

by Nathan Rector

Sending E-mail from Your MultiValue Programs Part 5: Creating and Sending E-mails with HTML and Text Sections

ow that I have covered the ba- 68734-812jasj-o871lnl8la sics of sending an e-mail from If you have ever looked at Does that mean anything? No. It is a N your MultiValue system, let’s the International Spectrum bunch of random characters that are look at making the e-mail look pretty. A unique within the e-mail. To supply the common question is. “how can I pres- Newsletter, there are two boundary id, you add it to the end of ent my e-mailed invoices as HTML, or sections to it: HTML and the “Content-Type”. send a newsletter, or add a nice signa- Text. That way if you have Content-Type: multipart/alternative; ture to my e-mail?” boundary=”68734-812jasj-o871lnl8la” preference of one over the Personally, most e-mails I send are text- Now, you define the boundaries sec- only, unless I’m trying to get some- other, or you are displaying the tions in your e-mail, but placing a “--” one’s attention, or it is better to present e-mail on a mobile device, it in front the boundary id to start the something is a prettier format. If you section, define the Content-Type for have ever looked at the International still displays nicely. that section, add a blank line, and then Spectrum Newsletter, there are two add your information into the bound- sections to it: HTML and Text. That That is how attachments work, which ary. To start the second section, third way if you have preference of one over we will also get into later. section, and so on, you would just re- the other, or you are displaying the e- peat the process. Once you are done mail on a mobile device, it still displays The Content-Type with all the boundaries, you place the nicely. If you remember from the first article, boundary id at the end with “--” on the To add both HTML and Text to your I talked about the e-mail header “Con- front and back. See figure 1 for an ex- e-mail body, you have to create what tent-Type”. This header defines how ample. is called a multipart e-mail. Much like to process the information within the everything else, this is pretty easy, but body of the e-mail. When working with Gotchas! is also really easy to break if you are not multipart sections, you have to specify There is a big gotcha here. You have to careful. the Content-Type as “multipart/alter- place the HTML and TEXT in the pre- native” and then supply a boundary id ferred order of display. What this means The first thing to understand about mul- that our information will be in. if you preferred the HTML to be display tipart emails, is that you can nest multi- over the TEXT section, then you must part sections within multipart sections. Boundaries can be anything you would place the HTML section as the last in like, but must be unique within the e- the list. If you prefer the TEXT section mail. That is right, within that e-mail. to be display over the HTML, then that You can use the same boundary tag in Digital Version must be the last one listed. all your e-mails if you like, but gener- On-Line ally the boundary tag is based on the This won’t guarantee that the HTML current date, time, and message Id. An Scan Me! will be displayed over TEXT, since this example of a boundary tag is: is a setting on the Recipient’s e-mail cli-

12 u intl-spectrum.com Content-type: multipart/alternative; boundary=”68734-812jasj-o871lnl8la” Is Your Membership

--68734-812jasj-o871lnl8la Profile Up to Date? Content-Type: text/plain

Hello, this is International Spectrum --68734-812jasj-o871lnl8la is currently working on content-Type: text/html updating membership information for all our

Hello, this is Html Text

readers. We always like to have the most current --68734-812jasj-o871lnl8la-- information so that we Fig. 1 can keep you informed of current news in the ent, but if the Recipient has not defined bile device, then I would recommend MultiValue Market. a preferred display type, then your pre- place the TEXT as the preferred dis- ferred display method will be used. play, as TEXT will display cleaner on a mobile phone. Now why would you display TEXT over HTML? Wouldn’t you want your HTML Including Different to always be preferred over the TEXT? Languages Please go online and update your membership profile Well… mobile phones. While a mobile The nice thing about multipart emails, phone will display HTML e-mail, most is you can send your e-mail in different today! HTML emails are designed for a desk- languages, and the recipient can decide top client, not a small two-inch screen. which language they want to display intl-spectrum.com/membership If you are know this is going to a mo- Continues on page 14

• Quick and easy to install • High quality pdf documentation and online help • Close compatibility with most other Open environments • Maintenance-free file system for ease of use • QMClient API for development of VB, C and M web-based applications • Very low licensing costs taking multivalue … • No mandatory support contracts where it has never been before • AccuTerm bundled at no additional cost

Ladybridge Systems Ltd 17b Coldstream Lane, Hardingstone, Northampton, NN4 6DB, England www.ladybridge.com US Main Distributor: EasyCo, 220 Stanford Drive, Wallingford PA, 19086 USA www.easyco.com www.openqm.com

INTERNATIONAL SPECTRUM September/October 2011 u 13 Sending E-mail from Content-type: multipart/alternative; MultiValue Programs boundary=”68734-812jasj-o871lnl8la”’ - Part 5: Creating and differences=Content-Language Sending E-mails with Html Content-Language: en, fr, de and Text Sections --68734-812jasj-o871lnl8la Continued from page 13 content-Type: text/plain Content-Language: fr the e-mail in. Again, this is not difficult to do, but it means you have to make Bonjour, ceci est du texte brut sure you provide the information about --68734-812jasj-o871lnl8la the languages included in the e-mail. content-Type: text/plain Content-Language: de In order to do this, you have to create a multipart/alternative section to define Hej, dette er almindelig tekst each of the languages that can be dis- --68734-812jasj-o871lnl8la played. You will also have to include a content-Type: text/plain header that defines language for each Content-Language: en section. See figure 2 for an example. Hello, this is plain text

Content Encoding --68734-812jasj-o871lnl8la-- When you write your body, you don’t Fig. 2 have to encode your information in any specific formats unless you want to. By Encoded: default, the e-mail client will assume the content is in a 7-bit format, which To illustrate the = means that all the characters included Various rules for encoding,=20the=20following=20= Example uses a little of in the e-mail are between ASCII 0-128. Well, that is not a problem, correct? everything

That is all the visible characters we Decode: care about… except when you have To illustrate the Various rules for encoding, the Unicode characters in your e-mail. following Example uses a little of

Then you should define the emails are everything 8-bit encoding. Fig. 3 To define your content encoding, you into this is pretty slim, but it does ex- issue with TEXT only is that you either add the following e-mail header right ist. provide line breaks yourself, or then after the “content-type” header: “con- hope the e-mail client is displaying that tent-encoding: 8bit” There are limita- Another encoding type you can use many characters on the screen or you tions to 7-bit and 8-bit encoding. Each is Quoted-Printable. While you don’t keep your paragraphs all on one line, line of your e-mail can not exceed 998 need it, it can come in handy when you and hope you don’t hit the 998 charac- characters. The likelihood that you run want to provide line wrapping on your ter limit for 7-bit and 8-bit encoding. TEXT section of your e-mail. The main To get around this, you can use the “Quoted-Printable” encoding. The en- coding works like the this: No line will exceed 79 characters, any line of text that is part of a line paragraph will in- clude a ‘=’ on the end to identify it as part of the next line of text; ASCII 33- 60 AND 62-126 will be left alone, but MVPJP Increases the efficiency of your operations by scheduling and automating jobs to be run in the any other character will be encoded background. It is cost-effective, user friendly, and highly with a ‘=‘ and hex value. See figure 3 reliable. for an example. In the next issue we will take a look at addition attachments to your e-mail. is 14 u intl-spectrum.com • MultiValue Command Pocket Guide

It’s All Here! Stay connected to your MultiValue Community, Technical Resources, and Developer information

• MultiValue Command Pocket Guide • Training • Technical Resources • Webinars • User Group Meeting Information • News and Articles

Facebook: intl-spectrum.com/facebook RSS: intl-spectrum.com/RSS Twitter: twitter.com/intlspectrum WEB: intl-spectrum.com Mobile: m.intl-spectrum.com Fr o m t h e Pr e s s Ro o m

wanted to minimize how much to take advantage of the new wholesale distributors measur- rewriting we would have to do, capabilities Caché brings to the ably improve their business re- given the fact that the system . “Caché gives us a lot of sults. had evolved over the last twenty flexibility going forward because MITS Distributor Analytics — an- to thirty years,” says Varadan, it can interoperate with a wide chored by the MITS Discover “and we decided that Caché range of modern technologies,” online analytics processing was our best option. Caché sup- Varadan says. He reports that PAML (OLAP) technology platform — ports MultiValue technology, so PAML’s next project is to re- provides easy-to-use tools for Makes Their it provided the easiest migra- engineer their workflows, using tracking and optimizing invento- tion path. The learning curve for Web services to automate data MultiValue ry levels and profitability, along our D3 developers was pretty entry from their clients’ systems. with sales trends, cash flow and Billing short.” And they are investigating using collections. Application 5X InterSystems DeepSee to em- Over the course of the migra- bed some reporting functions “Wholesale distributors use Dis- Faster with the tion, PAML converted approxi- that are currently handled by a tribution Management software mately 1,500 routines from D3 Caché Database third-party tool. solutions to run their day-to-day to InterSystems’ MVBasic, the operations,” says Fred Owen, PAML (Pathology Associates majority of which were ported Varadan is confident that PAML MITS President. “These systems Medical Laboratory) is one of without any problems. Accord- has chosen the right technology generate tremendous amounts the largest reference laborato- ing to Varadan, the conver- and the right technology partner of data, but it can be difficult to ries in the United States, serving sion process also highlighted to support growth and new chal- track key metrics and uncover over 100 hospitals, more than some problems that existed in lenges well into the future. He trends hidden inside them.” 25,000 clients, and several hun- the original code. “There were concludes: “Throughout it all, dred thousand patients a year. some very complicated billing InterSystems has been phenom- MITS Distributor Analytics is de- But although there is an ever- queries that could take hours enally good to us. In my sixteen signed to extract this complex increasing demand for their ser- to execute,” he recalls. “In the years working in IT, InterSystems data from a company’s Distribu- vices, PAML had to institute a course of moving to Caché, is one of the best software ven- tion Management System, then moratorium on creating new we were able to identify and fix dors I’ve ever come across.” present it to business users in an billing services, because their those problematic queries. Now easy-to-use way. “This lets busi- For more information, go to billing systems couldn’t keep they run in minutes.” ness managers zero in on the www.intersystems.com.  up. “Our work schedule gives us most important aspects of their Other performance gains have a four-hour window each night distribution business—without a been similar. Initial results from to process the day’s accounts,” lot of tedious work with spread- the newly deployed Caché- says Sonny Varadan, CIO of sheets,” says Owen. PAML, “but the application was based system show that the taking longer than that to com- end-of-day processing which Mastering Critical plete the job. We had billing used to take 4-6 hours, now Dimensions of clerks coming in and not being runs in slightly over an hour. The the Distribution able to start their day because end-of-month processing time Business. the system was busy.” has dropped from about 47 New Solution The success of a wholesale dis- hours to 6 hours. As a result, the tribution business hinges on a To address the problem, PAML system is available to all shifts, Helps surprisingly small set of key busi- decided to redesign their sys- right from the start of their day. Distributors ness metrics. “It’s all about hav- tem architecture, evolving from Productivity has increased and ing the right mix of products, de- a single machine to a more scal- PAML has stopped turning away Boost Sales, ployed to the right places,” says able, distributed configuration, new billing service business. Profits, Owen. “Match those up with the and making use of modern tech- Says Varadan, “I am no lon- right sales opportunities, and nologies such as Web services. ger concerned that the system Productivity. keep customer payments flow- That meant they would need won’t be able to keep up with MITS, leading provider of ad- ing in, and these businesses can to port their billing application increased demand.” vanced reporting and analytics be highly effective in today’s from D3 (a MultiValue database) solutions, today announced a competitive environment.” In addition to enjoying renewed to some other technology. “We new solution designed to help growth, PAML’s developers plan Starting with an executive dash-

16 u intl-spectrum.com board showing KPI metrics and act on every trend or condi- and insurance as well as in many About Precision that are important across the tion they uncover, by making it other industries.  Solutions organization, this new solution easy to see what’s in stock and Precision Solutions (Longmont, provides powerful yet easy-to- what it’s worth. They can also Colorado) unravels complex use tools for managing each of easily identify unusual stock business problems with qual- these business areas. The met- level trends, balance supply with ity solutions and exceptional rics on this full-screen, graphic demand, and uncover defective customer service. Using our dashboard link to underlying stock and vendor quality issues. customer centered, results-ori- detailed reports providing deep ented approach to software de- interactive analysis. Both the Helping velopment, we’re more than just dashboard, and the underlying Distributors Win In a Very Competitive Precision a bunch of technology geeks; reports can be set up for auto- Business. we’re real people with a passion matic distribution to the right us- Solutions “While inventory, receivables to deliver solutions that make a ers via email, or on demand. and sales are all critical to distri- announces the real difference. First, the Inventory Return on bution success, many organiza- availability of About Activant Assets “Cube” — or analysis- tions overlook another key asset Prelude — their information,” says Owen. version 4 of the tuned data view — lets business Activant Prelude fully integrates “This new solution unlocks that users manage a distribution Red Leaf web a distributor’s operations. The information, making it easy to company’s most important as- solution allows immediate trans- understand and analyze.” access portal set to maximize its contribution fer of information between de- to the bottom line. Users can for the Prelude MITS Discover is a mature, state- partments and permits flexible easily spot weakly performing of-the-industry analytics solution Advanced on-line inquiry into virtually any products and product catego- used by hundreds of organiza- kind of information. Prelude is ries, pinpoint winners and los- Precision Solutions is pleased tions worldwide. The new MITS a feature rich distribution pack- ers, and ensure inventory dol- to announce the availability of Distributor Analytics is already age with optional integrated lars are invested where they will version 4 of the Red Leaf web in use at key customer sites, and modules such as forecasting, do the most good. access portal for the Prelude is available for licensing now. integrated customer relation- Advanced Distribution System. There’s also a Sales Analysis ship management, value added This release incorporates an Cube, designed to help distribu- About MITS manufacturing, and business in- extensive list of improvements tion business managers quickly MITS is a leading provider of telligence.  including support for product identify customers who’ve Advanced Reporting, Online families, ship complete orders, stopped buying, sales reps who Analytical Processing (OLAP) significant product page en- are lagging behind, and cus- and Business Intelligence solu- hancements, and new corpo- tomers who might be draining tions. The company’s product rate user functionality. profits away. It’s easy to drill line includes both the MITS down to — or compare across — Discover OLAP Business Intel- Red Leaf offers Prelude custom- branches, products, and other ligence suite as well as the ad ers a unique path to the web by dimensions. hoc operational reporting solu- providing a completely customi- tion, MITS Report. Founded in zable user interface wrapped Meanwhile, the Accounts Re- 1996 and headquartered in around an extensive web API for Seinfeld- ceivable Cube lets business us- Seattle, Washington, the com- integration with the Prelude ap- ers quickly spot deadbeat cus- style Reality pany’s technologies are used plication. Customers can config- tomers, sales reps who depend by thousands of organizations, ure their products for their Red Migration Has too heavily on suspect credit, resellers, and systems integra- Leaf powered site with more in- pinpoint unpaid invoices that NGMC Laughing tors worldwide. MITS products formation and options than nor- got lost in the shuffle, and even are firmly entrenched in a wide mally available in the standard NorthgateArinso has received identify opportunities to improve range of business areas, includ- Prelude application, with tools another resounding seal of credit policies. ing manufacturing, distribution, to leverage Microsoft Excel and approval after guiding credit retail sales and services, edu- information powerhouse Na- Finally, the Inventory On Hand comparable tools for product cation, government, healthcare tional Group Management Corp Cube helps users investigate setup and maintenance. Continues on page 18

INTERNATIONAL SPECTRUM September/October 2011 u 17 Fr o m t h e Pr e s s Ro o m

Continued from page 17 ourselves on, and which builds employees and operates in 46 and quickly create reports and lasting and close partnerships countries across 5 continents. charts with a series of mouse through a glitch-free migration with companies like NGMC.” The original company was clicks. Drilldown scenarios pro- from D3 to Reality. founded in 1969 and since that vide users with the ability to slice Since the migration the relation- time has 40 years experience in their data, accessing underlying NGMC, a one-stop shop for ship between Northgate and the IT industry. information on demand. Predic- credit information within the NGMC continues to grow, with tive analytics, flexible result set service industry which deals the implementation of a joint Northgate is also one of the joining and appending, cross- with clients on both a domestic consulting project that is already market leaders in the MultiValue tabulations and data normaliza- and international level, migrated providing benefit to NGMC’s market where it continues to at- tions together with result set fil- to Reality last November due to customer service performance. tract new clients and is consid- tering and improved parameter the drastic increase in function- ered the industry leader for in- prompting make U2 DataVu ality provided. About National troducing new technology. Most Group Management 2.0 both powerful and a breeze Rosalia Letson, Director of Op- of the world’s largest MultiValue NGMC is a full service indus- to use. erations at NGMC, admitted installations across all continents try trade group management that the logistics of the impend- run on a Reality database, many Business users will benefit from organization specializing in the ing switch had been a cause of of which are mission critical and the new HyperVu web inter- credit, accounts receivable and concern but that the eventual make use of Reality’s market face allowing them to manage customer service / supply chain outcome surpassed all expecta- leading resilience features to their queries, reports and dash- functions. Their industry trade tions, in terms of performance ensure maximum availability. boards and power users will groups are comprised of mem- benefit from the new integrated and simplicity. For information about North- ber companies on a national repository allowing easier shar- gate and Reality please visit: “It was like an episode of Sein- and international level. ing of any queries, reports and feld,” she said. “Nothing hap- www.northgate-is.com/reality  NGMC offers a variety of servic- dashboards. pened, and that was the real es in each group ranging from beauty of the whole process. About Rocket trade experience interchange It was really incredible, there Software reports, daily flashes, informa- were zero issues with the whole Rocket Software is a global tive & educational meetings, changeover and the only chang- software development firm benchmarking survey’s and a es we noticed were the positive that builds and services Enter- great opportunity for members ones we had hoped for. We prise Infrastructure products to share information and net- couldn’t be happier.” for the world’s leading OEMs, work. This is all accomplished in networks and software compa- an environment that has a strict NGMC executives worked hand- Rocket U2 nies and enterprises. The com- code of ethics and conduct, in-hand with Northgate’s Mark pany’s current lines of business adhering to the U S Antitrust announces U2 Pick and Mark Fuller, based in complement and extend strate- Guidelines. Irvine, Calif., plus Tim Gunning, DataVu Report gic OEM offerings in the areas stationed in the company’s unit For more information about and Dashboard of database, business intelli- in Belfast, Republic of Ireland, in NGMC please visit www.nation- gence, storage, networks and the four months leading up to 2.0 with algroupmgt.com. telecom, terminal emulation the migration. enhanced data and FTP, integration, modern- “From our point of view it is about About ization and SOA, and security. NorthgateArinso transformation, having a great platform that we Rocket is engaged in business know provides the best, most NorthgateArinso (Northgate) navigation and and technology partnerships effective and most stable envi- serves approximately 1,000 ‘quick’ reports with IBM, EMC/RSA, HP/EDS, ronment for our partners,” said multinational customers, which Nortel, Motorola, and many oth- U2 DataVu 2.0 has been en- Pick, Northgate’s Vice President, includes more than 20% of ers. Rocket Software is based in hanced with a variety of features Reality. “Then we take the time Global Fortune 1000, 4,500 Newton, Massachusetts. that make it easier for users to to go through every aspect and large/ medium customers and access, analyze and visualize ensure a seamless migration for approximately 10,500 small/ business data. Users can now our partner. That is the level of medium enterprise (SME) cus- combine results from queries, performance we strive for, pride tomers worldwide. Northgate currently employs over 10,000 apply filters and transformations

18 u intl-spectrum.com focused content like case stud- “Our website has been rede- that enable organizations to ies, white papers, videos and signed to be more user-friendly, maximize performance and more. The site also highlights engaging, and informative by improve bottom lines. Entrin- a compelling Informer Product allowing visitors to quickly and sik’s Informer Web Report- Tour that guides visitors through easily access information about ing is an innovative, award- key features and functionality to our products and services,” winning operational reporting Entrinsik provide clear insight on how says Doug Leupen, CEO and and analysis solution used by Entrinsik’s solutions can meet President at Entrinsik. “We are tens of thousands around the Launches Newly their specific needs. already seeing a dramatic in- world. Entrinsik’s SEMtek ERP Redesigned crease in awareness and inter- software now drives many of Over 1000 organizations est in our solutions.” the nation’s largest profes- Website around the world choose En- sional and continuing educa- trinsik software for its ease-of- The redesigned website was Entrinsik Inc. (www.entrinsik. tion profit centers. use, flexible architecture, and developed by Atlantic Business com), developer of award-win- robust functionality. Entrinsik’s Technologies (http://www.atlan- Over 1000 organizations ning web-based operational re- Informer Web Reporting is an ticbt.com), a full-service web around the world use Entrin- porting and analysis solutions innovative, award-winning op- development company in Ra- sik’s software every day. For for clients across a variety of erational reporting and analysis leigh, NC. a demonstration of Informer industries, recently launched a solution used by tens of thou- or a free trial, call us today at newly redesigned, interactive sands around the world. Entrin- About Entrinsik, Inc. 888-703-0016 or visit www. website. The new site, www. sik’s SEMtek ERP software now Based in Raleigh, NC since entrinsik.com.  entrinsik.com, provides existing drives many of the nation’s larg- 1984, Entrinsik develops, im- and prospective Informer and est professional and continuing plements, and supports Infor- SEMtek customers with benefit- education profit center. mation Management Solutions

e-xtra Newsletter Stay on top of Industry News

Š Tech Tips Š Job Postings Š New Products Š Corporate Updates

www.intl-spectrum.com/newsletter

INTERNATIONAL SPECTRUM September/October 2011 u 19 Multivalue Communica- ing. This process then repeats until the done, you’ll get what you’ve always tions: The Persnickety Per- session is closed by the application, at gotten”. sistence Problem which point the disk storage is elimi- As we look ahead at the next 30 years Continued from page 7 nated. (If you think about it, this isn’t of MultiValue excellence, are you okay all that different from what happens to What’s really happening is that the with continuing to get what we’ve al- memory when you logoff a Telnet ses- browser is announcing itself to the ways gotten? is sion.) server on each request and the server is using that announcement to load a The disadvantage of extra I/O aside, the Kevin King is the Presi- specific block of memory for that user advantages to storing state information dent and Chief Technologist from a disk file or database query. When on disk are numerous. Without a per- the PHP runtime finishes processing a sistent connection there’s less chance with Precision Solutions, request, it updates that memory to disk of a network hiccup causing problems. Inc., a leader in technol- (or database) until the information is The actual state information will persist ogy solutions, support, and needed again. The PHP script may nev- until the application says it’s no longer er make another connection to the ap- necessary, even between reboots of the training. He is also the author of SB+ So- plication. But if it does, all that informa- server itself! And the memory footprint lutions, an enthusiastic private pilot, and tion is readily available until the script of the application can be dramatically Christian guitarist and producer... as time intentionally discards it. reduced as memory is committed only when it’s needed. allows. So in contrast to holding a big block of variables in memory indefinitely, PHP So to answer the question of the neces- holds its information on disk and loads sity of persistent network connections, it into memory only when needed, allow me to offer the oft-quoted words manipulates it as necessary, and then of motivational speaker Anthony Rob- puts it back out to disk before terminat- bins: “If you do what you’ve always

mv QuickBooks API for the MultiValue Database QB

• Read/Write Directly to Quickbooks Databases Customer, Vendor, Invoices, Purchase Orders, Chart of Accounts • mvQB API is Designed for the MultiValue Program to Use All routines are simple BASIC calls designed for the developer. No special user interfaces required. • No Need to Learn the Internals of QuickBooks • QuickBooks Pro/Premier/Enterprise Natec Systems Phone: 303.465.9616 E-mail: [email protected] Providing Solutions to your MultiValue Questions Website: www.natecsystems.com

20 u intl-spectrum.com Spectrum University offers once a week training classes in a variety of topics pertaining to the MultiValue market. Looking for training for yourself or employees? Spectrum University Can help! Check out are latest offerings.

Upcoming Webinar Schedule

Syntax Comparison: MultiValue and C#/VB.NET When working with a new programming language having a syntax comparison can be very valuable. This webinar will show you the syntax differences between MultiValue BASIC and .NET.

Implement ActiveDirectory Security in MultiValue Applications All MultiValue Applications have security built into them, but it can be a bit disconnected from the rest of the business enterprise. This webinar will show you how to implement ActiveDirectory security within your application.

Back-To-Basics — Free The Back-To-Basics webinars allow you to review or train new staff on how to use the basics of a MultiValue database. We will be doing classes that cover topics from Dictionaries, Display Formats, Correlatives, I-Types, PROCs, and many others.

MulitValue GUI Applications After working for years in a Top-Down programming environment, changing to a GUI/Event driven environment can be a challenge. This webinar will cover different aspects of GUI development, include ways to translate “Legacy” applications into GUI environments.

Comparison: MultiValue vs SQL This webinar will compare the MultiValue database structure to the a SQL Normalize structure. We’ll generate SQL tables from MultiValue files, as well as create MultiValue files from SQL Table. These webinars are informative, and are provided to help understand the differences between MultiValue and SQL environments.

Database Triggers Creating file and database triggers can be tricky with a few gotchas that you need to be aware of. This webinar will cover syntax, templates, and gotchas to watch out for.

For more information or to register please visit http://www.intl-spectrum.com/webinar Business Tech MultiValue Cloudsin the by Charles Barouch

Sadly Turn Away From the group about MultiValue on the Cloud. Coffee MultiValue is deployable on It wasn’t a surprise that the post said, You know this scenario. You arrived at the Cloud. Here’s why we “Won’t it be cool…” work, pour a hot cup of coffee, and get I leapt in, as did several others, and ready to tear into that project you keep aren’t really ready for the said, “Can be done, has been done, getting pulled away from and sudden- Cloud — deployment tools. could be done better.” I thought I’d ly you hear a co-worker or boss race provide a larger version of my answer in and say, “We need to implement teen minutes Googling the buzzword for the larger audience here. . Without and posting on message boards to fig- we are just another ure out what this buzzword means in Stratus? Cumulus? Cirrus? hopelessly technologically backward concept and in workload. Cumulonimbus? company. Fire/Flood/Famine will sure- A definition is in order. From a deliv- ly follow if we don’t get on the bandwagon.” Sometimes when we Google and post, Timeshare. I’ve been doing timeshare At this point one of two things hap- it is not because someone else is excit- since the early 80s, and I got into the pens: A) You sadly turn away from ed. Occasionally, we allow ourselves to game late. In essence, Cloud comput- the coffee and spend the next fifteen get excited about technology as well. ing is central server computing with minutes explaining the buzzword’s Personally, I’ve been known wax poet- shared resources. That sure meets the real implications to an audience who ic over certain hardware and software definition of Timeshare. The difference is unprepared for any answer besides from time to time. We are technolo- is in the execution. “right away!” B) You sadly turn away gists, after all. For some of us, the new From an execution standpoint, the from the coffee and spend the next fif- twinkling bit of coolness is the Cloud. cloud is cluster computing, but at a We aren’t alone. Amazon, Apple, Mi- lower level. Clusters combine several Digital Version crosoft, and lots of other people are computers to produce the effect of On-Line screaming, “Cloud!” from every roof- one, faster computer. Cloud deploy- top. So, it wasn’t a surprise when I ment allows the combining of mem- Scan Me! saw a post on the LinkedIn Reality ory, disk, etc. to make one computer

22 u intl-spectrum.com beefier, or leaner without reboot, re- If we want to see MultiValue on the ment tools for our utilities (report writ- configuration, or migration. So, if the Cloud, we can make it happen. There’s ers, 4GLs, etc.) , our applications, and execution is done right, a Cloud server a lot of money in offering companies a for our data. is, to the O/S and to the applications, managed system using this sort of tech- So, the challenge is out there. In the exactly what a non-cloud server is — a nology. cloud, people are more concerned collection of hardware. As if by Chance with up-time and smooth operations than with brand names. We can stop Cloudy with a Chance… As it happens, I am doing a Cloud de- selling MultiValue and just start selling If a Cloud server running Red Hat En- ployment right now. While it is Multi- the productivity that MultiValue pro- terprise looks just like a non- Value adjacent — the UniVerse system duces. Being an embedded database cloud server with the same software, involved is on a separate server with has been a successful model for us, and MultiValue can run on it. If it looks like the Cloud server depends on for con- the Cloud is just the next level of em- Ubuntu and your MultiValue platform tent and some layout — the deploy- bedding. is can run on that, then MultiValue is de- ment won’t require me to move Multi- ployable on the Cloud. Value to the cloud. Since I know how CHARLES BAROUCH to install databases to servers, and that Here’s why we aren’t really ready for hasn’t changed, what few things I’ve is the CTO for Key Ally, the Cloud — deployment tools. See, learned in this deployment are enough we meet the technical definition of Inc. He is past Presi- to make me an expert on Cloud de- Cloud. But this is a business tech col- dent of the Internation- ployment for MultiValue. The learning umn, so we have to understand how curve is actually that small. al U2 Users Group, and a regular Spectrum business defines the cloud. Again, it’s Magazine contributor. about deployment tools. Chances Are From my original post: “The limit isn’t My post oversimplifies, because it only Contact Charles at [email protected], MultiValue, the limit is the ‘missing’ talks about making MultiValue deploy- or phone (718) 762-3884 ext 1. tools to allow nth number of databases able. We all know that MultiValue is a to be hosted separately. Since we have means, not an end. To make us really the concept of discreet accounts, the ready for the Cloud, we need deploy- missing part is just a webpage/wizard to deploy you and charge you for the service.” Business loves the Cloud because it of- fers the following: 1. Less down-time due to migration; 2. Less down-time due to upgrades; 3. Less down-time due to hardware maintenance; 4. Less down-time due to wrestling with software deployment. Sense a theme here? Business hates down-time. I once had a customer, back in my first IT job, say, “Our sys- tem is too important for us to take it down for backups.” They literally felt that having no backups was less of a problem than having a down-time event scheduled nightly. Less down- time is a core concept for every busi- ness that uses technology, which is to say nearly every business.

INTERNATIONAL SPECTRUM September/October 2011 u 23 Auditing Database Changes with UniVerse Indexing Subroutines

by Clifton Oliver

he UniVerse database has sup- The purpose of an indexing subroutine from which the purchase order num- ported file triggers for some is to derive the index value that is to be ber is to be removed. time, not just on UniVerse cross referenced with the record key. T Changing a record (“update”) requires SQL tables. They are fully compliant For example, say that we had a need that our subroutine be called twice — with the standard SQL model for trig- to be able to quickly retrieve all of the once with the old data to determine gers — before and after insert, update, purchase orders entered by a particular which index value is to have the pur- and delete events; referential integrity; employee for a given accounting peri- chase order number removed and once cascading; the ability to modify or ter- od. Accounting periods do not always with the new data to determine which minate an update; and so forth. Obvi- follow calendar months. So for our par- index value is to get the purchase or- ously, supporting all this functionality ticular industry, in order to determine der number added to it. involves a noticeable amount of over- the accounting period of a particular head. But in the Real World, our tradi- date, we might have to look up the in- One of the problems with cross-refer- tional MultiValue applications manage formation in a period table. We could encing, be it with indexes or the tradi- all of this themselves. The primary use have a subroutine whose job it was to tional XREF file, is what happens when of file triggers I have seen is as a way take the purchase order date out of the the majority of records cross reference to capture database change events in record, look it up in the period table, to the same index record. For exam- order to log them as part of IT gover- and catenate the period with the user ple, if you were indexing on an order nance auditing (SOX, HIPPA, etc.). login ID. We then create an I-type de- status field so that you could quickly scriptor in the dictionary that calls this retrieve all open orders, you would In UniVerse release 11.1, Rocket Soft- subroutine then build an index on that have an index record for the “O” sta- ware has provided us a way of using I-type. Anytime we add, change, or de- tus and another index record for the indexing subroutines to capture chang- lete a record, UniVerse is going to want “C” status code (and, of course, various es to a file. To completely understand to update that index appropriately. status codes in between). Assuming how this new technique works, let’s that the majority of your orders have first review the normal use of indexing In the case of adding the record (an “in- been completed, you can see that the subroutines. sert” in SQL terminology), the index- index record for the “C” status is going ing routine calls our subroutine once to be humongous. Updating this index in order to generate the * value that is to Digital Version status is going to take a lot of time. And have that purchase order number cross On-Line it will continue to get worse and worse referenced to it. Likewise, when delet- as it goes along. Eventually you get to ing a record, our subroutine would be Scan Me! the point where a user marks an order called once to return the index value

24 u intl-spectrum.com as completed and has time to go get a files, and return to the indexing mecha- So what does the subroutine do once cup of coffee before they can do any- nism which will proceed to do… abso- it is called? In this case, we wanted to thing else with their screen. lutely nothing. create an audit trail of what has been changed in the data record. The cur- What you would want to do in this case is to create your index on an I- Continued from page 26 type that returns the status code if it was anything other than a “C” and the null string otherwise. Then when you create the index, use the NO.NULLS option. This way, your completed or- ders (perhaps hundreds of thousands of records) would not be indexed in a single index record. What does all of this have to do with auditing database changes? Directly, nothing. But once we understand the indexing mechanism and the purpose of an indexing subroutine, we can make use of it for purposes other than Fig. 1 for what it was originally intended. The general idea has been around since the days of Prime INFORMATION. The indexing mechanism is only interested in the value that your subroutine re- turns. It doesn’t care about what your subroutine might do behind the cur- tain. You create an I-type in the dic- tionary of the file to be audited. This I descriptor does nothing more than call your subroutine by using theSUBR function. In the example shown in figure 1, this I-type descriptor will call the Audit- Suber subroutine. (The * as the first character indicates that this is a glob- ally catalogued subroutine. If you’re not familiar with that concept, see the Fig. 2 UniVerse documentation.) This sub- routine will return the string value that Ramp up to full compliance with PRC! is to be indexed, which will always be the null string. Now here is where the 1001110000111000011100101001 “trick” comes in. Create the index with 1001110000111000011100101001 the NO.NULLS option and build the racking changes across your software development lifecycle (empty) index (fig. 2). Tcan knock you off course. But you don’t have to sacrifice agility to achieve best practices. Since your subroutine will never re- PRC gives you the speed, visibility and responsiveness turn a value other than the null string, to manage all aspects of software configuration, from service desk through deployment. Productivity leaps you have essentially used an index as when you gain total control. a hook simply to call your subroutine, And we’ll be right there, jumping through hoops for you! which will do anything that it wants to SJ+ Systems Associates • [email protected] • http://sjplus.com do including writing records to other

INTERNATIONAL SPECTRUM September/October 2011 u 25 Auditing Database Changes 0 — Not being used from an index with UniVerse Indexing Sub- 1 — INSERT (new) record routines 2 — DELETE record Continued from page 25 3 — UPDATE derive old index value 4 — UPDATE derive new index value rent data record is always passed into Fig. 3 Values of @IDX.IOTYPE variable the subroutine in the @record system variable. So at first glance, it would ap- A number of techniques have been is @idx.iotype. (Yes. These system pear that the job is relatively straight- tried, usually with stashing things in variables can be uppercase: @RECORD forward. There is, however, one glitch named common, rereading the record and @IDX.IOTYPE, if all caps coding is in the technique that has perplexed from the disk (so much for efficiency), your preference.) programmers who use it for years. How and trying to guess at what the time in- When the indexing mechanism calls do you know why you were in your terval might be between the first and your subroutine @idx.iotype is set subroutine? If you have been called second call of an update. Frankly, most to an integer value from zero through because a new record is being created, of these were kludges that were forced four. (See figure 3 for the meaning will contain the new data that to sacrifice either accuracy or efficien- @record of the five values.) Now when all we is about to be written to the file. If you cy. So there was great rejoicing when want to do is monitor and record data- are called because a record is being true file triggers were introduced. base change events, rather than using deleted, will contain the data @record And then people started running triggers, we can go back to the lower that is about to be deleted. And if a re- benchmarks. And the rejoicing be- overhead indexing subroutine tech- cord is being updated, your subroutine came somewhat subdued. All of that nique and know exactly why our sub- will get called twice, once with the old SQL compliant stuff adds a noticeable routine has been called and what we data and once with the new data. So amount of performance overhead. So are supposed to do in that instance. how do you know what rep- @record as an alternative, UniVerse 11.1 gives resents? Old, new, about to be added, Figure 4 is a listing of a very simplis- us another system variable to tell us or about to be deleted? tic auditing subroutine. In real life, you what stage of the indexing mechanism is calling our subroutine. The variable Continued from page 29

Fig. 4

01 * Subroutine to demonstrate the use of using index subroutines to 02 * provide auditing of database updates. 03 * 04 * @idx.iotype = 0 - Not being used from an index; 05 * 1 - INSERT (new) record; 06 * 2 - DELETE record; 07 * 3 - Derive old index value; 08 * 4 - Derive new index value; 09 10 subroutine AuditSubr(returnValue) 11 common /auditing/ dictAuditTrail, fileAuditTrail, flagOpen, oldDataRec 12 13 equ nil to “” 14 equ otherwise to @true 15 systemMarks = @fm : @vm : @svm 16 printableMarks = “^]\” 17 18 if not(flagOpen) then 19 open “DICT”,”AUDIT.TRAIL” to dictAuditTrail else 20 return ; * to caller. 21 end 22 open “AUDIT.TRAIL” to fileAuditTrail else 23 return ; * to caller. 24 end 25 flagOpen = @true 26 end code continues on page 27

26 u intl-spectrum.com Fig. 4 code continued from page 26 27 28 begin case 29 case @IDX.IOTYPE = 0 30 null ; * Not being called from an index. 31 case @idx.iotype = 1 32 gosub LogNewRecord 33 case @idx.iotype = 2 34 gosub LogDeleteRecord 35 case @idx.iotype = 3 36 oldDataRec = @record ; * Save before image for next call. 37 case @idx.iotype = 4 38 gosub LogUpdateRecord 39 end case 40 41 returnValue = nil ; * Don’t do any indexing. 42 return ; * to caller. 43 *------44 LogNewRecord: 45 logEntry = “N” 46 logEntry<2> = @id 47 logEntry<4> = convert(systemMarks, printableMarks, @record) 48 gosub WriteLogEntry 49 return 50 *------51 LogDeleteRecord: 52 logEntry = “D” 53 logEntry<2> = @id 54 logEntry<3> = convert(systemMarks, printableMarks, @record) 55 gosub WriteLogEntry 56 return 57 *------58 LogUpdateRecord: 59 logEntry = “U” 60 logEntry<2> = @id 61 logEntry<3> = convert(systemMarks, printableMarks, oldDataRec) 62 logEntry<4> = convert(systemMarks, printableMarks, @record) 63 gosub WriteLogEntry 64 return 65 *------66 WriteLogEntry: 67 readu dictrecAuditTrail from dictAuditTrail, “&NEXT.AVAILABLE&” else 68 dictrecAuditTrail = “X” 69 dictrecAuditTrail<2> = 1 70 end 71 idAuditTrail = dictrecAuditTrail<2> 72 dictrecAuditTrail<2> += 1 73 write dictrecAuditTrail on dictAuditTrail, “&NEXT.AVAILABLE&” 74 75 recAuditTrail = logEntry 76 recAuditTrail<5> = date() 77 recAuditTrail<6> = time() 78 recAuditTrail<7> = @logname 79 write recAuditTrail on fileAuditTrail, idAuditTrail 80 return 81 *------82 end

INTERNATIONAL SPECTRUM September/October 2011 u 27 Tech Tip

Reality CSV Files

nteracting with delimited file structures for import and export is very important within your enterprise soft- I ware. Comma Separated Values format is the most common. Reality has included an easy format for interacting with CSV files. By using the MAKE-SPECIAL TCL command, you can create a Q-POINTER like file that will turn a CSV file into a MultiValue file. This allows you to use standard SELECT/LIST/SORT statements, and MultiValue Basic OPEN/READ/WRITE statements against the data. You will need to provide a few options to help define how to interact with the CSV files, but the general syntax is

MAKE-SPECIAL {filename} CSV {filepath} For example,

MAKE-SPECIAL UNION CSV C:\temp\union.csv This will turn the CSV file in figure 1 into a Q-Pointer that displays the output found in figure 2. The command will create dictionary names based on the heading row. The dictionary names will be created by removing all the extra spaces in the column description and replacing the remaining spaces with periods. Eg, “First Name” becomes First.Name There are a few options that will come in handy when working with CSV files. Since not all CSV files include headers in the first line, you have the ability to define them yourself. Include NOHEADING to tell the Q-Pointer that there is no Header line in the CSV file.

MAKE-SPECIAL UNION CSV c:\temp\union.csv NOHEADING No Dictionary items will be created when NOHEADING is supplied. Do you have a Tech Tip to share? E-mail it to [email protected]

“Surname”,”City”,”Country” “Wilkinson”,”Newcastle”,”UK “O’Driscoll”,”Dublin”,”Eire” “Michalak”,”Paris”,”France” Fig. 1

:LIST UNION

Page 1 13:43:58 06 Apr 2005

Surname... City...... Country...

Wilkinson Newcastle UK O’Driscoll Dublin Eire Michalak Paris France

3 Items listed. Fig. 2 28 u intl-spectrum.com From the Inside Auditing Database Changes Continued from page 4 with UniVerse Indexing Sub- routines Feedback he supplied was information provided Continued from page 26 on public domain web sites, and a line What came first, or two of code on how to access or use will probably want to be doing field the letters or the the public domain code. level comparisons and more sophisti- letters-to-the-editor cated recording of who changed what department? No company process or code was giv- when where. en way. The named common at line 11 serves International Spectrum Issue: Everyone knows how to do this al- two purposes. The first is the fairly Magazine has a Feedback ready typical way of avoiding reopening our Department, sometimes audit file every time the subroutine is known as Letters to the Wrong! Wrong! Wrong! I’m sorry. But Editor. there are a number of problems and so- called. The second is to provide a place lutions that people think are obvious, to store the “before” record data dur- We want to hear your but they are not. I see this every year at ing the first UPDATE call so that we can comments, your reactions, the Spectrum Conference (Which, by compare it with the “after” data provid- your agreement or the way, will be April 2 – 5, 2012). ed by @record in the second UPDATE disagreement with what you call. see. Also, do not hesitate Here is an example: Can you write an to let us know about things article about, “How do you print your The case structure from lines 28 through 39 is a simple dispatch based happening in the MultiValue MultiValue data to a PDF document?” Community we may not on the value of @idx.iotype to the Response, “Well, everyone knows how have heard about yet. to do that!” Did you know how to do appropriate routine for the type of da- it before it was published here in Spec- tabase change that is occurring. Note trum magazine? that in the case of @idx.iotype type Please send your comments by e-mail to: being equal to 3, all we are doing is sav- [email protected] I don’t know about you, but I’ve found ing a copy of the old record in named that many people want to do this, and common so that it can be used when know it can be done, but have no clue we come back to the subroutine with where to start. type equal to 4. @idx.iotype you need to be able to change the data Just because it seems like common The rest of the code is just to save read- being saved to the file, be able to al- knowledge, it doesn’t mean that there able before and after images to our au- low or disallow the update to continue aren’t people that don’t know how to dit file for demonstration and testing depending on some set of security cri- do it. purposes. In a Real World subroutine, teria, use the other SQL features, trig- gers are still the way to go. But where So, please! I need your help to get the this is where the actual work of do- your intent is to simply observe what word out to your MultiValue colleagues ing record comparisons and building changes are being made to the data- — MultiValue is alive and well, and it’s an appropriate audit entry would take base and record an audit trail of those ready for your mainstream, diverse sys- place. The results of adding, changing, facts, indexing subroutines provide a tems, integrated environments. I want and then deleting a record with the edi- lightweight alternative. is to hear how you solved your business tor is shown in figure 5. or technical problems. So does this eliminate the use of regular file triggers? Not really. In cases where

-Nathan Rector President, International Spectrum [email protected]

Fig. 5 INTERNATIONAL SPECTRUM September/October 2011 u 29 Clif Notes: Blood Not amazed at how many grammar “errors” large blocks of text, and producing Required I find on news web sites like CNN. near-perfect final papers stopped be- Continued from page 31 ing an exercise in physical torment. Making the physical work Yet I think that most of us still react to Chicago Manual of Style trying to make easier “writing” in a negative manner because up for my perceived lack of formal No wonder writing seems hard. The we are really reacting to the memory of training. Well guess what? I discovered way many of us were forced to do it how hard the physical process was. that not only are there very few hard most of our lives is hard, physically and fast rules when it comes to gram- hard. Writing essays longhand, re-copy- Write like you were talking mar and punctuation, but a lot of the ing them, having to throw out an entire to your reader “experts” disagree among themselves. page if you wanted to switch several of That’s not a bad bit of advice. But I will And some of the rules that we have had the sentences around? Writer’s cramp go you one better. Don’t write like you pounded into us, like that chestnut of is physically painful. were talking to your reader. Actually not ending a sentence with a prepo- talk to them. I have been experiment- When you get old enough to use a sition, are holdovers from grammar ing with dictation software for a num- typewriter, assuming your family could books used years and years ago that ber of years. I am happy to report that afford one at the time, things got no- were not even correct when they were the technology and the affordable pro- ticeably better as far as the physical written. They were just some teacher’s cessor power is now readily available act of getting words on paper was con- personal opinion that got propagated to anybody who can afford a personal cerned. But much of the rework when because that particular textbook was computer, notebook, or now, even a revising your first draft or editing your popular at the time. tablet. In fact, that is how I am “writ- final copy remained the same. Throw ing” this column. If you want to write So loosen up and take it easy. Unless the page out and retype it. you’re in a writing class and doing a articles, if your job requires that you paper for some instructor who’s nev- Then came word processors, but they write reports or documentation, or you er been published in his or her life, were dedicated devices way out of the have to write more than ten e-mails a stop worrying about whether or not price range of most students. It wasn’t day, you owe it to yourself to explore you would recognize a participle if it until the arrival of the personal com- this technology. puter and word processing programs was dangled in front of you. Even the If you decide to try using dictation soft- that the physical act of generating pros don’t get it right all the time. I’m ware let me share with you a discov- words, rearranging them, modifying ery that will dramatically improve your productivity with it. Don’t correct your mistakes while you’re dictating. Every product I have tried has the ability for you to tell it to backup a certain num- Free Subscription ber of characters, delete the previous certain number of words, or correct a phrase for better voice recognition Subscribe on-line at next time. Don’t do it. Pay attention to www.intl-spectrum.com talking and getting your point across. and keep Spectrum magazines Then, using Mr. Fingers and Mr. Key- coming free for 1 year!! board, go back through the rough draft and make your corrections and edits

$7.00 U.S. $7.00 U.S. $7.00 U.S. $7.00 U.S. InsIde: Developing User Interface Standards InsIde: E-mail From MultiValue: Sendmail InsIde: The Trial of Telnet InsIde: MultiValue in the Cloud the old-fashioned way. It’s much faster InternatIonal InternatIonal InternatIonal InternatIonal Plus! Plus! Plus! Plus! Who Owns the Interviews from Breakthrough Both Text and International MultiValue HTML: Multi- than trying to dictate corrections to ® Data? ® ® ® Spectrum 2011 Applications part E-mail SpecThE MulTivaluE TEtchnologyr uMagazinSEm i Mar/pecapr 2011ThE MulTivaluE TEtchnologyr uMagazinSEm i May/JunpecThE 2011 MulTivaluE TEtchnologyr uMagazinSEm i Jul/pecaug 2011ThE MulTivaluE TEtchnologyr uMagazinEm i SEp/ocT 2011 your dictation. Give it a try. You will Are find that while you still have to think Character EncodingDisaster PlanningERPPersistent Connections about what you’re going to say and Thinking about the UnthinkableOutside the Box a Thing of the communicate it in an understandable Getting Ready for the World Stage A Case Study Past? manner, the actual process of produc- ing the words no longer needs to be a bloodletting experience.

intl-spectrum.com intl-spectrum.com intl-spectrum.com intl-spectrum.com After all, I’ve never heard of anybody getting a “pixel cut.” is

30 u intl-spectrum.com Blood Not Required By clifton Oliver Clif Notes

f you haven’t already read Nathan One of the things that we do each tice that I didn’t say it was, I said that Rector’s From the Inside col- year at the Spectrum Conference is was the perception. And perception I umn this issue, I would strongly conduct a session for people who is influenced quite a bit by psychol- suggest you turn to the front of the would like to consider writing ar- ogy. magazine and do so. He is request- ticles for the magazine — what sort ing help in getting the word out that of things we’re looking for, how to Relax, they’re just words MultiValue is alive and well and quite come up with ideas for topics, and Frankly, I blame the school system able to tackle your modern applica- how to go about it. So far, these ses- (public or private). Writing is treated tion requirements. It is also very ca- sions have been very well attended. as something that is clearly done ei- pabile of fitting into a “mainstream” They seem to generate a lot of enthu- ther right or wrong. Style is either IT shop having a number of differ- siasm, and at the session during the right or wrong. Grammar is either ent platforms working together. But 2011 conference, we were joined by right or wrong. And punctuation as long as there are only a handful several of our contributing writers is either absolutely perfect or it is of us who write articles or blog en- who shared their experiences, not wrong, wrong, wrong, and you are tries about the kinds of problems we only how they wrote their articles, an idiot worth being laughed at. And have solved using our various Multi- but how it felt personally and how if you end a sentence with a preposi- Value platforms and the techniques it affected them professionally when tion like the previous one or begin we used to do it, as a community their work and byline actually ap- a sentence with a conjunction like we are going to continue to appear peared in print. But one of the things this one does, then you have proven to be much smaller than we really that always puzzles me is why with yourself to be illiterate. are. Whereas other platforms have the number of attendees we have, Nothing could be further from the dozens of writers publishing articles maybe we will get one new writer truth. I am not an English major. I for various magazines, journals, and to do one article. I’ve given a fair never took an English or writing class newsletters, in the MultiValue world amount of thought to this question that wasn’t a mandatory part of the it seems like you see the same bylines and I think I have come up with one core requirements. My eighth grade over and over. Not that there is any- of the answers. English teacher told me, in front thing wrong with seeing certain writ- of the class of course, that I would ers consistently producing articles! Writing is hard never amount to anything because I But when those are the only writers Huh? Really? Especially if you are refused to learn how to diagram sen- you see, it gives the impression that writing about a topic or technique tences. The next year I became the there must not be very many people you know inside and out, have used only freshman to have a story pub- using this thing, otherwise you would to solve a real-world problem, and lished in our high school’s literary see a lot more people writing about have no trouble explaining to some- journal. (So stick it in your ear, Mr. it and discussing it. I think he did one sitting across the table at lunch, Simmons.) an excellent job explaining some of how hard could it be? And yet, with the issues and shooting down some as many years as I have been writ- When I first took the position of Edi- of the myths about what it takes to ing columns, articles, and technical tor of Spectrum magazine, it would write an article. Now I would like to documentation, I will admit that I take me hours to edit the articles. I add a couple of thoughts then share sometimes get bogged down even spent an extraordinary amount of with you an idea about how to make in starting because of the perception time with my nose stuck in grammar the process even less daunting. that, “This is going to be hard.” No- texts, punctuation guidelines, and Continues on page 30

INTERNATIONAL SPECTRUM September/October 2011 u 31 2012 MultiValue Conference April 2 – 5, 2012 Your Source for Complete MultiValue Solutions From application development and technical systems support to complex business and web development, we offer complete IT solutions.

International Spectrum Conference is the only place that Topics that can be found at the International provides diverse solutions and support for integrating and Spectrum Conference: developing your Enterprise applications into the world of „ Integration business and technology. „ Database Management „ Mobile Integration This annual event is the place to find the knowledge, people, „ Reporting and Data Presentations resources, and technologies for enhancing your MultiValue „ Project Management (D3, UniVerse, UniData, Reality, jBase, Cache, QM, and OpenInsight) software package.

intl-spectrum.com/conference/2012 PGA National Resort & Spa I Palm Beach Gardens, Florida