Computer Corporation of America
|
Feedback
Search CCA:
   
USA CCA
CCA Products
CCA Customer Support
CCA Resources
CCA - Company
CCAPRINT: A Newsletter for Model 204® and System 1032® Users
May 10, 1999

 

Model 204 — Year 2000

Redevelopment Option
Case Study at the County of Ventura, California

By Kim Collins

When the County of Ventura, California, reviewed all their systems for Year 2000 compliance, they decided that most could be remediated by changing date formats and amending the applications. They have changed most of their Model 204 systems themselves, and some have been changed for them by CCA’s Year 2000 team.

The County concluded that one business-critical application, written primarily in COBOL and Assembler, was going to present a major challenge to change. They decided that a rewrite to modern standards under Model 204 was a much better investment than remediating the old code.

The work was undertaken jointly by the County of Ventura and CCA’s Consulting Group. A Project Manager and a Business Analyst from Ventura, both very knowledgeable of the system, were appointed. CCA set up a development team with expertise in Model 204 analysis, design, documentation, programming, and testing.

Planning phase

The initial phase of the project established the detailed business requirements and the system design. It became clear that although the fundamental objective was to replace the older system with one that was Year 2000 compliant, there were many needs for improved ease of use and better management information. There were also many manual processes involved in the previous system, which needed to be automated. The new system was designed to meet all these objectives. The development standards were defined, and a software infrastructure built to comply with these standards. The system was designed to be driven as far as possible by rules and tables, isolating the most complex parts of the application into a small set of modules.

Development phase

The time spent working on the design and the infrastructure really paid dividends once the application coding began. As readers of CCAprint well know, there is nothing as fast as Model 204 for developing large business systems, and the team of three programmers rapidly turned over functional areas of the system ready for testing.

As the development phase neared its end, and customer acceptance testing picked up speed, the pressure increased further. Maybe there were areas of functionality that we had not looked at in sufficient detail right at the start of the project, though it is always hard for users to be sure exactly what they want until they see the new system taking shape.

Production phase

The nature of the application meant that we were able to release the software into production use in phases, so that the end users became familiar with one part of the system before starting with the next. Comprehensive documentation, both on screen and as user manuals, was a key requirement for Ventura, and this made the whole process of training users in the new system much easier.

Lessons learned

With the project now successfully complete, what lessons are there for development projects generally?

Not too late

Now that May 1999 has arrived, is it too late to replace non-Y2K compliant systems with a new one on Model 204? There’s probably still time for many systems. You might be forced to make compromises on quite how much functionality you are going to deliver in the initial phase, and you certainly need a fully activated team with a set of standards and infrastructure software already in place.

With the right set of people, the right tools, and the right methodology, you can still escape from Y2K nightmares by building a replacement system in Model 204.

Education Schedule

May – June 1999

Course Dates Location

Model 204

Introduction to User
Language (UL150)
5/19-21 Framingham, MA
User Language Performance & Tuning (UL350) 5/24-26 McLean, VA
Introduction to System Management (SM100) 6/16-18 McLean, VA
Programmer’s User Language (UL200) 6/21-25 McLean, VA
File Design & Management (FM100) 6/28-30 McLean, VA

System 1032

DBMS Fundamentals (F1032) 6/21-22 Framingham, MA
Essential PL1032 (P1032) 6/23-25 Framingham, MA

System 1032

Converting Special Characters to and from HTML

by Tym Stegner

A user recently asked if System 1032 had any new functions for converting hex values to characters. The user is processing HTML forms, and wants to be able to have System 1032 translate the "%hh" HTML construct back into the appropriate character. HTML encodes nonalphanumeric characters in this way to ensure accurate data transmission.

Although System 1032 does not currently have such a function, it is possible to arrive at these conversions using existing commands.

A hexadecimal value, if prefixed with the hexadecimal constant specifier, is treated as an integer by System 1032, and, thus, $CHAR can be used to determine the equivalent character. Since $CHAR takes only integer values, however, the $CHAR assignment must be done using an EXECUTE command.

Converting from hex to characters

The procedure DEHEX (on page 3) locates a hex- encoded character, builds the appropriate LET command, processes it, then uses the resulting character in a global replace within the text to be converted. This process repeats until no more hex-encoded characters are located.

Converting characters to hex

A similar procedure, HEX (on page 3), scans a list of printable, nonalphanumeric characters to be located in the conversion string. For any qualifying character found, $ICHAR returns the ASCII integer for that character. The procedure next uses $TEXT to convert this integer into a 2-character hexadecimal. The actual conversion looks like:

"%"&$TEXT($ICHAR("?"),H2)

Similar to DEHEX, the procedure uses the $REPALL function to make the global changes in the text value, repeating the process until the list of characters ends.

Procedures DEHEX and HEX

$ TYPE HEXING.DMC
Variable HDX text 1 !Needed for EXECUTE statement

Procedure DEHEX( otx : output text, inx : text varying)

Variable fx,px integer initially 1
Variable mx text 33 initially "[0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F]"
Variable hx text 3

Let otx = $Trim(inx)


Repeat
Let px = $Find("%",otx,fx,1)
If px gt 0 then
Let hx = otx[px:px+2] !Ensure %hh
If hx[2:2] matches mx and hx[3:3] matches mx then
Execute "let hdx = $Char(#X" & hx[2:3] & ");"
!! Write hx hdx format("Converting " a3 " to <" a1 ">...")
Let otx = $Repall(hx,hdx,otx), !Replace all occurances
fx = 1
Else !Otherwise, skip this one
Let fx=px+1
End_if
End_if
Until px eq 0
End_Procedure

Procedure HEX( otx : output text, inx : text varying)

Variable cx text 33 initially "%<HT>!^"#$&'()*+,-./:;<=>?@[\]^^_`{|}~"
Variable i integer !List of chars to convert

Let otx = $Trim(inx)

For i from 1 to 33 do !Scan the list
If $Find(cx[i:i],otx,1,1) ne 0 then
!! Write cx[i:i] format("Converting <" a1 ">...")
Let otx = $Repall(cx[i:i],"%"&$text($ichar(cx[i:i]),H2),otx)
End_if
End_for
End_Procedure

Sample run for HEX and DEHEX

$ s1032
Computer Corporation of America System 1032 Version V9.70-0
Copyright 1997, Computer Corporation of America
1032> Use HEXING
1032> Variable t1,t2,t3 text varying
1032> Let t1 "This 3 $0.0 (*?) of [1:3] ^M>%; {hi} "
1032> Call HEX(t2,t1)
1032> Call DEHEX(t3,t2)
1032> Write t1 t2 t3 format(/ "org: " a / "hex: " a / "bck: " a )

org: This 3 $0.0 (*?) of [1:3] M>%; {hi}
hex: This 3 %240%2E0 %28%2A%3F%29 of %5B1%3A3%5D M%3E%25%3B %7Bhi%7D
bck: This 3 $0.0 (*?) of [1:3] M>%; {hi}
1032>

 

 
Copyright © 2003 Computer Corporation of America.
All right reserved. Published in the United States of America.

500 Old Connecticut Path, Framingham, MA 01701
webmaster@cca-int.com
Copyright 2005