Home SELCOPY CBLVCAT CBLi Trial/Prices CBL SiteMap
 
Multiple Information Retrieval, Manipulation & Update for IBM Mainframe, iSeries, UNIX & PC Platforms

Customer Success Stories

1. Global Data Processing
2. Macro 4 Plc


top
Company: Global Data Processing
 
Objective: Generate a new text data file containing latest name/address information for all customer entries.
 
Description: File1 is an ASCII text data file containing original customer information. Each record in the file contains a unique reference number (URN) and corresponding customer name/address details. (Approx 18 million records in all.)
e.g.
  1906872547   Ms Jo Bloggs,   3 New Road,   ......

File2 is an ASCII text file with each record containing old and new name/address details for customers referenced in File1. Each record includes two URN, one each for the old and new customer name/address details. Records in File2 are sorted in ascending order of old URN.

Notes:

  • The URN in File1 may match an old URN reference in File2.
  • The corresponding new URN in File2 may also match an old URN in another File2 record.
    (e.g. where a customer has changed address more than once.)
e.g.
  1906872547   Ms Jo Bloggs,   3 New Road,  ......   6528681955   Ms Jo Bloggs,  16 Old Street, ....
  6528681955   Ms Jo Bloggs,  16 Old Street,  ....   8914276275   Mrs Jo Thomas,  42 Castle View, ...

Solution: Since records in File2 are sorted by a unique identifier (the old data URN), SELCOPY keyed read syntax is used to input File2 records directly using the old data URN field as the data key.
  1. Read sequentially a record from File1 to obtain the URN key.
  2. Use the URN key to perform a keyed (direct) read of the appropriate record in File2.
  3. If non-zero new URN exists in the second part of the File2 record, then use it to perform another keyed read of File2.
  4. Repeat this until new URN is zero, at which point we have the customer's current details.
e.g.
  READ  "c:\data\src_addr.txt"         INTO 1001                       * URN at Position 1001.
  ...
  ==LOOP==
    READ  "c:\data\upd_addr.txt"  KEY=10 AT 1001  KEYPOS=1 KEYLEN=10   * Keyed Read using URN.

    IF POS NEW_URN  <>  0
      THEN  MOVE     10 AT NEW_URN       TO 1001         * New URN Field.
      THEN  GOTO LOOP                                    * Go back and repeat the keyed Read.
Benefits:
  • SELCOPY's ability to perform direct (i.e. non-sequential) input of a plain ASCII text file of this size reduces processing significantly when compared to using alternative solutions.
  • This particular job completed in under an hour having processed over 18 million records. Alternative methods using sequential input failed to complete and were cancelled after executing for over 8 hours.


top
Company: Macro 4 plc
 
Objective: Convert AWSTAPE format files to real tape in a UNIX/Linux environment.
 
Description: Macro 4 had a requirement to produce AWSTAPE format product tapes at certain regional offices. These offices have access to the UK based mainframe systems but do not have the physical tape drives attached locally. Installing the hardware at these locations with channel extenders was an extremely costly option.

Although 3rd party solutions were available to produce S/390 tapes on non mainframe platforms, Macro 4 Internal Systems Group wrote their own application running under Linux to create the product tapes. SELCOPY was an integral part of this application as it could perform the necessary data manipulation and write the files out to tape in the required format.

Macro 4 and Compute (Bridgend) enjoy a long running relationship in the mainframe arena. The Macro 4 project team knew that the power and flexibility of SELCOPY made it an ideal solution for tape creation on the Linux platform. They received first class support from Compute (Bridgend) enabling the application to be successfully tested and the project to move on to the next phase.


Solution: A UNIX/Linux SELCOPY job was created to read the AWSTAPE file, interpret field information and write file data and appropriate tape marks to a mounted (non-rewinding) tape device.

Using SELCOPY's flexible data input capabilities, discrete amounts of data could be read from the file based on data lengths extracted from header blocks embedded within the data itself.

The length of an AWSTAPE data block is contained within the preceding and following header blocks in Little-Endian format. Header blocks also contain bit flags that indicate a tape mark or the beginning/end of a data block.

A version of the completed SELCOPY job, which faithfully converts data contained in any AWSTAPE file, is published in the table below. Note that the format of a header block is mapped using SELCOPY EQUATE statements at the beginning of the job.

TEXT Format (Opens in new browser) File Size Last Update
AWS2TAPE_CTL - ASCII TEXT 5,371 bytes 2007/04/12 17:32

Since output is to a non-rewinding tape, the SELCOPY CLOSE operation can be used to close the output file in order to write a tape mark and so allow subsequent WRITE operations to write data after the tape mark.

This solution also resulted in a new feature for SELCOPY; the FLUSH operation immediately writes all data in SELCOPY's output buffer to the output device.


Benefits:
  • Eliminates dependency upon S/390 & zSeries emulation hardware and software for AWSTAPE->real tape conversion.
  • The ability to email a virtual tape reduces delivery time and international carrier charges for tape distribution.
  • The SELCOPY job is portable across all supported UNIX platforms with little or no change. Therefore, regional offices are not restricted to operating with the same type of UNIX operating system.
Customer Comment: "The partnership with Compute (Bridgend) has really added value to our operation. The production and introduction of SELCOPY has saved us considerable sums which can now be invested in other areas to help our business continue to grow."
Martin Solly, Enterprise Systems Group Leader
 
Top © 2005 Compute (Bridgend) Limited
http://www.cbl.com/selcdoc.html
2007/08/13 12:01:32