MAPPER, now known as BIS, is a fourth-generation programming language from Sperry Univac. Mapper originated in the 1970s based on some work in the 1960s, but has been kept current. It was renamed and also given an extension named ICE – Internet Commerce Enabler.
MAPPER (MAintain, Prepare, and Produce Executive Reports)—officially renamed BIS (Business Information Server) but still called MAPPER by many users—began as an internal product. It was developed in Sperry Univac’s computer factory in Roseville, Minnesota to help the company manage their factory producing computer hardware. It was initially called CRT RPS (Report Processing System), to differentiate it from RPG. Its first external customer was Santa Fe Railway. Besides the Santa Fe, the Kansas City government was an early customer. MAPPER became a popular solution in the Government sector. User group communities formed like the New England MAPPER Users Group.
CRT RPS was renamed MAPPER in 1975. Because of its unofficial status it was a low-budget development, and was built for minimum use of resources. It was written in Assember language. Initially it had only limited string manipulation; that has since been corrected. A Macro capability was also subsequently added. The development of the UNIVAC 1100, and pressure from customers led to a release for more general use in 1979.
In the mid 1980s Sperry actively marketed MAPPER, including advertising featuring “MAPPER Man”, the self-empowered executive end-user. In the Scandinavian countries, Sperry had a MAPPER song—”Do it the MAPPER way!” (1983)—written and performed by an ABBA-style group.
A 1989 survey by Unisys showed that 140 of 224 UNIVAC 1100 customers were using MAPPER. By 2006 there were more than 600 sites using MAPPER for Windows NT.
An early description of MAPPER was the paper “MAPPER Was the First User-command Language” presented at the USE technical conference in March 1983 by Michael Nicoll-Griffith of Canadian Pacific Consulting Services and published as part of the USE proceedings. In 1988, the book “User-driven Computing” by Louis Schlueter was published.
MAPPER use requires that the community have a MAPPER Coordinator, who has a set of privileged tools to monitor and tune the development and control abuses. Tools are written in the MAP programming edit mapper (command)
The basic unit of data is called a “report”. This appears similar to a Microsoft Excel spreadsheet. It is usual to have sets of similar reports with the same column structure that apply to different categories or groupings of items. Reports are organised into “drawers” of identically-structured reports, and groups of up to 8 drawers form a “cabinet”. Reports can be between 40 and up to 998 characters wide, depending on platform. On the “Core MAPPER” platforms (Windows/Unix/Linux), the drawer size must be a multiple of 2: on the 1100/2200 it can be an odd number.
Reports are numbered from 1 to the maximum set for the drawer- there is also a report zero, which has a special significance as it acts as both a template and as a filter for the rest of the reports in the drawer. Drawers have a drawer letter, from B to I. Cabinets are numbered from 0 and increment by 2 – odd numbered cabinets reference the same data as the matching even cabinet, but provide a read-only view of the data (e.g. cabinet 0 and cabinet 1 represent full and limited access to the same data). There is a system maximum for a given system, which varies depending on platform and is represented by the system reserved work MAXCAB$. Drawers run from B to I because A is a special drawer; it is deemed to exist simultaneously in all cabinets, so acts as a global resource. Drawer A is typically used for “quick and dirty” temporary datasets, captured data, prototype run code, notes and so on. The third report in drawer C in cabinet 36 would be referenced as 3C36, or simply 3C if the user is logged into cabinet 36 already.
A major difference from spreadsheets is that MAPPER reports have no built-in calculation capability. Processing is achieved by applying a “Command” or “Function” to a report, an action that produces a duplicated “result”. This result can be processed further.
Another important difference is that MAPPER data is a form of visible-record data; what you see is literally what you get. Within an individual drawer, reports all have the same line length, which is padded with spaces if not filled. By the same token, column sizes within a data record are fixed, unlike Excel where you can type hundreds of characters into a small field unless limited by data validation. This is both a strength and a weakness of MAPPER- due to the fixed sizes, the position of any section of the data on disk can be calculated, but the data must be able to be expressed in fixed-format fields.
In older versions of MAPPER, security was applied at a cabinet level– with current versions, security has a finer granularity and is applied at drawer level. If a user is not granted access to a particular drawer, the data will not be visible to that user. It’s possible to grant either update or read-only access to a given drawer.