Resource Logic Client/Server Development Services

Project - Bill of Materials Processing

Datapoint Corporation developed a videoconferencing system in the late 1970's and early 1980's. This system remained competitive into the early 1990's, despite Datapoint's otherwise disastrous decline from the Fortune 500 and the DJIA.

The engineer designing the system needed a way to 'explode' top assemblies and subassemblies into parts lists. A videoconferencing system can have one or more hubs, several consoles, various collections of cables, and incidentals like microwave transceivers, satellite uplink/downlinks, and so forth. These were the 'top assemblies'. Circuit boards, power supplies, and keyboards were examples of subassemblies; and capacitors, resistors, ICs, and connectors were components. Many of these components were common across multiple top- and sub-assemblies.

Top assemblies, for purposes of this system, were any product that had no 'parent'. A list of these would constitute an order, such as might be received from the sales department. A first-pass scan through this list would produce a list of the most senior sub-assemblies, and so forth. Each assembly had a parts list, some of which were subassemblies and some of which were components. The most 'primitive' sub-assemblies consisted only of parts.

This system treated the list of top assemblies, subassembly parts lists, and components as a tree structure, and 'drilled down' into the tree as assemblies were encountered in the list. This required the maintenance of a push-down stack, so that when a 'primitive' subassembly was completely itemized, the program could pick up with the remaining items in the ancestor subassembly, for as many layers as was required. Typically there were no more than five layers between a top assembly and a component.

When processing a tree structure of this kind, it is necessary to check for 'circularity', which means that two parts lists reference each other. This was done by simply comparing a newly encountered sub-assembly with all assembly numbers already on the stack; if there was a match then some circular reference had been identified.

This system was written in Datapoint Databus language and was run on a variety of computers running the Datapoint RMS operating system.